如何从bash获取CLI参数?
在如何从bash获取CLI参数?,bash,Bash,在test.sh中,如何获取参数?通过$9访问$0($0为脚本名称)。或者,$*返回所有参数的列表 如果您想一个接一个地访问参数,或者如果您想访问9号以后的参数,您可以shift参数: test.sh parameter echo "${10}" echo "${@:10:1}" 当这样称呼时: echo $1 shift echo $1 将产生: ./script.sh foo bar 如果使用的是单个参数$1(以及$2等等,$0是脚本名称)。然后,要获取所有参数,请使用$@echo“
test.sh
中,如何获取参数?通过$9
访问$0
($0
为脚本名称)。或者,$*
返回所有参数的列表
如果您想一个接一个地访问参数,或者如果您想访问9号以后的参数,您可以shift
参数:
test.sh parameter
echo "${10}"
echo "${@:10:1}"
当这样称呼时:
echo $1
shift
echo $1
将产生:
./script.sh foo bar
如果使用的是单个参数
$1
(以及$2
等等,$0
是脚本名称)。然后,要获取所有参数,请使用$@
echo“$@”;打印所有参数每个参数都由$NUM访问,其中NUM是您希望访问的参数数$0是一个特殊参数,指示脚本的名称。$#返回参数的数目
foo
bar
将给予
test.sh alpha beta gamma
echo $0
echo $1
echo $2
echo $3
echo $#
您也可以使用
shift
通过参数进行“移位”<代码>$1包含第一个参数。如果调用shift
,则第二个参数将“移位”为$1
,依此类推。至少在Bash中,您可以执行以下任一操作来访问任何参数,包括10及以上:
test.sh
alpha
beta
gamma
3
要迭代所有参数,请执行以下操作:
test.sh parameter
echo "${10}"
echo "${@:10:1}"
这个形式意味着“$@”中arg的
,只是好奇,如何获取第10个参数?@user198729:嗯……我的答案不是已经解释过了吗?您可以shift
参数。@user198729:这是一个通用的解决方案。如果你想得到第100个参数,你可以shift
99次,让$1
${10}
中的参数看起来可以工作,尽管我不确定是否与其他shell兼容。。。