2014-02-27 50 views
0

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

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

我想echo $ 2(file2),但使用算术表达式“echo $$((3-1))”,我认为这将解析为$ 2,但bash只会引发错误。

+1

............笏 –

+0

呀,有点神秘,那些句子。你能更清楚地解释一下吗? – Alfe

+0

您可以举例输入和输出,以便我们确切地看到您的意思吗? – Daniel

回答

3

使用可变间接:

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

这将打印的$2的值,即 “BAR”。

+0

谢谢,这个工程。 –

+0

+1用于识别问题所要求的内容。线条之间令人印象深刻的阅读。 –

0

使用子扩展操作:

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