我在$ 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