1
可能重複:
Bash: can’t build array in right side of pipe爲什麼我的數組在退出循環後不見了?
我需要創建從一個文件的數組。我必須計算一個存儲數據的索引。當我在閱讀循環之外時,我的數組似乎消失了。爲什麼???
下面的腳本說明了這個問題。
#!/bin/bash
echo -e "15\n21\n33" | while read i ; do
ar[$i]="set"
echo ${!ar[@]}
echo ${ar[@]}
done
echo
echo outside loop:
echo ${!ar[@]}
echo ${ar[@]}
正如您在輸出中看到的那樣,打印數組索引和內容不再在循環外工作。
15
set
15 21
set set
15 21 33
set set set
outside loop:
請參閱http: //stackoverflow.com/q/11656013/1030675 – choroba
http://mywiki.wooledge.org/BashFAQ/024 – ormaaj