這應該打印整個關聯數組到控制檯:foreach循環只返回最後一個元素
#!/bin/sh
declare -a array=([key1]='value1' [key2]='value2')
for key in ${!array[@]}; do
echo "Key = $key"
echo "Value = ${array[$key]}"
done
echo ${array[key1]}
echo ${array[key2]}
相反,它打印OLY最後一個變量:
[[email protected] etl-i_test]$ ./test.sh
Key = 0
Value = value2
value2
value2
哪裏是我的故障?
@htor: Bash版本是3.2.25(1) - 釋放。
看看http://stackoverflow.com/q/688849/1983854,有很多解決方案。 – fedorqui
你確定/ bin/sh實際上是/ bin/bash嗎?還有關聯數組是使用'-A'而不是'-a'構建的......看到下面的回答 –
/bin/sh是我係統上bash的符號鏈接 – mles