获取 $@ / argv / 参数数组的最后一个元素而不使用 eval

Tom*_*ale 1 bash

如果我做:

set a b c
Run Code Online (Sandbox Code Playgroud)

如何访问 的最后一个元素$@,即c

我最初想为$@数组添加下标:

"${@[$#-1]}"
Run Code Online (Sandbox Code Playgroud)

但:

bash: ${@[$#-1]}: bad substitution
Run Code Online (Sandbox Code Playgroud)

我最终想出了:

eval echo "\$$#"
Run Code Online (Sandbox Code Playgroud)

有没有办法获得$@without的最后一个元素eval

是首先将其复制到另一个数组并访问的唯一方法吗${copy[-1]}