我在$ 1到$#中有几个字符串。我想执行一个简单的算术表达式,并根据表达式的#来回显$的值。
例如。设置file1 file2 file3 file4
我想回显$ 2(file2),但是使用了一个算术表达式“echo $$((3-1))”,我认为它会解析为2美元,但是bash只会引发错误。
答案 0 :(得分:3)
使用变量间接:
set -- foo bar baz
var=$((1+1))
echo "${!var}"
这将打印$2
的值,即“bar”。
答案 1 :(得分:0)
使用子字符串扩展运算符:
$ set -- file1 file2 file3 file4
$ echo ${@:$((3-1)):1}
file2