如何检查传递到 shell 脚本的参数数量是否正好为 2?

如何检查传递到 shell 脚本的参数数量是否正好为 2?

我有一些理解,要检查传递到 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

将设置$1arg1$2to ,arg2即为。$#2

脚本的名称将在 中提供$0,但$0其特殊之处在于它是不是包含在数组 中$@$#是 的长度(元素数)$@

相关内容