$1是第一个参数。 $@是全部。

如何找到传递给shell的最后一个参数 脚本?


当前回答

GNU bash版本>= 3.0:

num=$#                 # get number of arguments
echo "${!num}"         # print last argument

其他回答

使用参数展开(删除匹配的开头):

args="$@"
last=${args##* }

也很容易把所有的都放在最后:

prelast=${args% *}

使用eval的解决方案:

last=$(eval "echo \$$#")

echo $last

这适用于所有posix兼容的shell:

eval last=\${$#}

来源:http://www.faqs.org/faqs/unix faq/faq/part2/section - 12. - html

使用结合长度的索引:

echo ${@:${#@}} 

注意,这是bash专用的。

要返回最近使用的命令的最后一个参数,请使用特殊形参:

$_

在这个实例中,如果在调用另一个命令之前在脚本中使用它,那么它将工作。