2014-02-27 84 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 
相關問題