从《高级 Bash 脚本指南》中,获取最后一个命令行参数:
或者:
lastarg=${!#}
这是一个 间接引用到$#
变量。
请注意,这lastarg=${!$#}
不起作用。
答案1
正如它所说,这是一个间接引用。举个例子:
$ var=test
$ test='Hello, world'
$ echo ${!var}
Hello, world
现在,如果我要设置以下位置参数:
$ set -- one two three
并且$#
将表示位置参数的总数:
$ echo $#
3
这意味着当我调用它时,就像${!#}
我说的那样,给我名为 的参数的值3
:
$ echo ${!#}
three