如何从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兼容。。。