${!#} 在 bash 中如何获取最后一个命令行参数?

${!#} 在 bash 中如何获取最后一个命令行参数?

从《高级 Bash 脚本指南》中,获取最后一个命令行参数:

或者:lastarg=${!#} 这是一个 间接引用$#变量。
请注意,这lastarg=${!$#}不起作用。

答案1

正如它所说,这是一个间接引用。举个例子:

$ var=test
$ test='Hello, world'
$ echo ${!var}
Hello, world

现在,如果我要设置以下位置参数:

$ set -- one two three

并且$#将表示位置参数的总数:

$ echo $#
3

这意味着当我调用它时,就像${!#}我说的那样,给我名为 的参数的值3

$ echo ${!#}
three

相关内容