2015-12-11 100 views
2

如何內嵌bash for循環中的字符串數組?這工作:如何在bash for循環內嵌入字符串數組?

array=(one two) 
for i in ${array[*]};do echo $i; done 

但我想消除額外的局部變量。我試過,似乎合理的許多變化,例如:

for i in ${("one" "two")[*]};do echo $i; done 

for i in ${"one" "two"};do echo $i; done 

在每種情況下,它把onetwo爲命令:(

+4

嘗試:'for i in one t禾;做echo $ i;完成' – Whymarrh

+2

'我在「一」「二」時發生了什麼事情;做echo $ i;完成'? – Gene

+2

您應該將$ {array [*]}中的i改爲'for $ in「$ {array [@]}」 - - 這將保護您免受包含空格或通配符的數組元素的影響。 –

回答

2

你嘗試:

for i in "one" "two"; do echo "$i"; done

+0

這不會是一個數組。 – bufh

+0

對不起...我實際上偏離了這個問題,因爲我得到的印象來自:http://stackoverflow.com/questions/8880603/loop-through-array-of-strings-in-bash-script,這個功能是正在尋求(目前的問題提問者在那裏評論)。我忽略了一個選項,可能需要引用循環體中的另一個數組元素(不僅是當前的數組元素)......我應該刪除答案嗎? –