我有一些理解,要检查传递到 shell 脚本中的参数数量,我必须在 shell 脚本中执行以下操作:实施例1
if [ "$#" -ne 2 ]; then
do something;
fi
但是,我有点困惑,想知道运行时 shell 脚本的名称是否被视为参数的一部分,以及 python 脚本在涉及sys.argv
.
终端中的示例如下: 实施例2
./script.sh $1 $2
在这种情况下对于实施例2有多少参数实际上被认为传递给实施例1if else 循环。
答案1
脚本的名称不被视为位置参数的一部分。这意味着
somescript arg1 arg2
将设置$1
为arg1
和$2
to ,arg2
即为。$#
2
脚本的名称将在 中提供$0
,但$0
其特殊之处在于它是不是包含在数组 中$@
,$#
是 的长度(元素数)$@
。