C Shell 脚本/参数
外观
在脚本中,变量$0
、$1
、$2
等被称为位置参数。变量$0
表示命令的名称,$1
、$2
及更大的变量将是传递给脚本的参数。
当调用csh脚本时,特殊变量argv被设置为命令行给出的参数的字列表。因此,作为特殊变量$1
、$2
等的替代方法,csh脚本可以使用$argv[1]
、$argv[2]
等访问命令行参数。变量$#argv
的值是给出的参数数量。
例如,编写一个myparams脚本
#!/bin/csh -f echo The $0 command is called with $#argv parameters echo parameter 1 is $1 echo parameter 2 is $2 echo parameter 3 is $3 echo parameter 4 is $4 echo 2nd and on parameters are \"$argv[2-]\"
echo All Parameters are \"$argv\" echo All Parameters are \"$argv[*]\" echo All Parameters are \"$*\"
然后运行命令
./myparams alpha beta omega
这将打印出以下内容
The ./myparams command is called with 3 parameters parameter 1 is alpha parameter 2 is beta parameter 3 is omega parameter 4 is All Parameters are "alpha beta omega" 2nd and on parameters are "beta omega"
如果参数丢失,位置参数的值将是一个空字符串,就像第 4 个参数一样。另外,您可以使用变量 $argv 获取整个或部分命令行,它是一个字列表。
如果要在一个参数中包含空格,则必须引用该值。例如,运行以下命令
./myparams "alpha beta" omega
将打印出以下内容
The ./myparams command is called with 2 parameters parameter 1 is alpha beta parameter 2 is omega parameter 3 is parameter 4 is All Parameters are "alpha beta omega" 2nd and on parameters are "omega"
现在 alpha 和 beta 值合并成一个单一值。
- 传递给脚本的参数可以使用编号变量访问,例如
$1
、$2
、$3
等等。 - 传递给脚本的参数也可以使用名为
$argv
的字列表变量访问。