gpt4 book ai didi

bash - bash 脚本中的 -e 和 -ne 是什么意思?

转载 作者:行者123 更新时间:2023-11-29 09:18:08 24 4
gpt4 key购买 nike

#!/bin/bash

# number of expected arguments
EXPECTED_ARGS=1

# exit value if the number of arguments is wrong
E_BADARGS=1


if [ $# -ne $EXPECTED_ARGS ]
then
echo "Usage: `basename $0` {arg}"
exit $E_BADARGS
fi

if [ ! -e $1 ]
then
echo "file $1 does not exist"
exit $E_BADARGS
fi

for myfile in $1/*
do
if [ -d "$myfile" ]
then
echo "$myfile (DIR)"
elif [ -f "$myfile" ]
then
echo "$myfile"
fi
done

我是 bash 的新手,我无法理解 !if[ ! -e $1] 以及 $1/*for myfile in $1/* 中的含义。到目前为止,我已经考虑过 if[! -e $1] 好像(不等于第一个参数)(这样做)....这是正确的吗?但是 什么 不等于第一个参数? for myfile in $1/*,我不知道这是什么意思。有帮助吗?

最佳答案

if [ $# -ne $EXPECTED_ARGS ]

-ne 运算符测试两个数字是否“不相等”。 $# 是一个变量,表示传递的参数数量。此行检查它是否与变量 $EXPECTED_ARGS 不同。

if [ ! -e $1 ]

-e 运算符测试磁盘上是否存在文件。 $1positional parameter ,这是传递给脚本的第一个参数。所以这一行正在检查文件是否存在。 See this page有关在 bash 中使用 if 的更多信息。

for myfile in $1/*

预期 $1 是一个目录,并使用 globbing 遍历目录中的每个文件.每个文件都加载到变量 $myfile 中。

如评论中所述,脚本存在一些问题。我会做一些不同的事情;将此视为改进它的第一次快速运行:http://pastebin.com/4fbsdrDw

关于bash - bash 脚本中的 -e 和 -ne 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077070/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com