有没有办法在 bash 中做到这一点?回显 $$((2-1))



我有几个字符串在$1到$#。我想执行一个简单的算术表达式,并根据表达式的 # 回显出 $ 的值。

例如,设置文件1 文件2 文件3 文件4

我想回显 $2 (file2),但使用算术表达式"echo $$((3-1))",我认为它会解析为 $2,但 bash 只是抛出一个错误。

使用变量间接寻址:

set -- foo bar baz
var=$((1+1))
echo "${!var}"   

这将打印$2的值,即"bar"。

使用子字符串扩展运算符:

$ set -- file1 file2 file3 file4
$ echo ${@:$((3-1)):1}
file2

相关内容

  • 没有找到相关文章

最新更新