我在$ 1到$#中有几个字符串。我想执行一个简单的算术表达式,并根据表达式的#回显$的值。
例如。设置文件1文件2文件3文件4
我想echo $ 2(file2),但使用算术表达式“echo $$((3-1))”,我认为这将解析为$ 2,但bash只会引发错误。
我在$ 1到$#中有几个字符串。我想执行一个简单的算术表达式,并根据表达式的#回显$的值。
例如。设置文件1文件2文件3文件4
我想echo $ 2(file2),但使用算术表达式“echo $$((3-1))”,我认为这将解析为$ 2,但bash只会引发错误。
使用可变间接:
set -- foo bar baz
var=$((1+1))
echo "${!var}"
这将打印的$2
的值,即 “BAR”。
谢谢,这个工程。 –
+1用于识别问题所要求的内容。线条之间令人印象深刻的阅读。 –
使用子扩展操作:
$ set -- file1 file2 file3 file4
$ echo ${@:$((3-1)):1}
file2
............笏 –
呀,有点神秘,那些句子。你能更清楚地解释一下吗? – Alfe
您可以举例输入和输出,以便我们确切地看到您的意思吗? – Daniel