只是一個簡單的問題。關於bash shell腳本中的數組
我有一個數組:
array=("1 2 3" "4 5 6")
如果我:
echo ${array[0]}
echo ${array[1]}
1 2 3或4 5 6將被顯示。
但是,如果我這樣做:
for iter in ${array[@]}
do
echo $iter
done
所顯示的值不是如我所料....誰能給我用正確的方式?
只是一個簡單的問題。關於bash shell腳本中的數組
我有一個數組:
array=("1 2 3" "4 5 6")
如果我:
echo ${array[0]}
echo ${array[1]}
1 2 3或4 5 6將被顯示。
但是,如果我這樣做:
for iter in ${array[@]}
do
echo $iter
done
所顯示的值不是如我所料....誰能給我用正確的方式?
報價是你所需要的:
for iter in "${array[@]}"; do
echo "$iter"
done
感謝編輯@chepner。引用「iter」變量並不是真的需要,不是嗎? –
這取決於。沒有加引號,'$ iter'的值將在每個單詞作爲單獨的參數傳遞給'echo'之前進行單詞分割。引用時,整個字符串作爲單個參數傳遞。比較'iter =「a b」'(在'a'和'b'之間應該有多個空格)「。 – chepner
@chepner啊我可以在'$ {array [@]}中使用'for iter'來看看它的區別。做printf「%s \ n」$ iter;完成「和」爲$ {array [@]}「中的iter;做printf「%s \ n」「$ iter」;完成'和是啊,多空間的例子是很好理解的原因了。再次感謝! :) –
你有什麼期望?我得到「1 2 3」和「4 5 6」,數組中的值。 – tjameson