可能重复:
Bash:无法在管道右侧构建数组
我需要从文件创建一个数组。我必须计算一个索引来存储数据。当我离开我的读取循环时,我的数组似乎消失了。为什么???
下面的脚本说明了这个问题。
#!/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: