The*_*hwa 11
当您从命令行调用 shell 脚本时,您可以向它传递称为位置参数的附加参数。例如,在命令行中输入以下内容来运行脚本时myscript.sh:
./myscript.sh param1 param2
变量将具有以下值:
"$0" = "./myscript.sh"
"$1" = "param1"
"$2" = "param2"
Run Code Online (Sandbox Code Playgroud)
该变量$#给出了参数的数量,不包括命令。在这个例子中:
"$#" = 2
该变量$*将所有参数列为一个单词(添加引号以强调字符串边界):
"$*" = "param1 param2"
该变量$@将每个参数列为单独的带引号的字符串(添加引号以强调字符串边界):
"$@" = "param1" "param2"
请注意,您应该几乎总是在 bash 中引用变量,因此您应该使用"$@"而不是$@. 有关更多信息,请参阅此编程指南。
变量$*&$@是调用脚本(或函数,如果在函数内部)时传递的参数。
"$@" 是您通常应该使用的一个:它扩展为单独的单词,一对一用于传入的参数。
"$*" 扩展为由空格分隔的所有参数组成的单个“单词”。
(不要在没有引号的情况下使用它们;这会导致您不想处理的分词和一般混乱。)
$# 是参数的数量(因为它总是一个数字字符串,所以你是否引用它并不重要)