从高级 Bash 脚本指南中,获取最后一个命令行参数:
或者:
lastarg=${!#}
这是对变量的 间接引用$#
。
请注意,lastarg=${!$#}
这不起作用。
jes*_*e_b 28
正如它所说,它是一个间接引用。以下面的例子为例:
$ var=test
$ test='Hello, world'
$ echo ${!var}
Hello, world
Run Code Online (Sandbox Code Playgroud)
现在,如果我要设置以下位置参数:
$ set -- one two three
Run Code Online (Sandbox Code Playgroud)
并且$#
将代表位置参数的总数:
$ echo $#
3
Run Code Online (Sandbox Code Playgroud)
这意味着当我像${!#}
我说的那样调用它时,请给我名为 的参数的值3
:
$ echo ${!#}
three
Run Code Online (Sandbox Code Playgroud)