无法填充bash数组

时间:2016-09-28 09:48:17

标签: arrays bash shell

我正在运行Ubuntu 14.04并尝试在shell脚本中填充数组,以便我可以循环遍历它并利用其内容来填充文本文件。然而,有一个障碍:它似乎没有填补。

我已经简化了我正在处理基本问题的较大脚本,转载如下:

WL_START=1
WL_END=5
WL_INC=1
wl_range=$(seq $WL_START $WL_INC $WL_END)

declare -a WL

for i in $wl_range # loop through sequence and fill array
do
    WL[$i]=${wl_range[$i]}
done

echo $wl_range
echo ${wl_range[1]}
echo $WL
echo ${WL[1]}

但是,我的输出如下:

1 2 3 4 5

空行

空行

空行

有什么想法吗?我知道人们说只使用seq来填充数组,但我也遇到了同样的问题。

2 个答案:

答案 0 :(得分:4)

工作太多了。

WL=($(seq $WL_START $WL_INC $WL_END))

答案 1 :(得分:0)

wl_range是一个由空格分隔的数字组成的字符串,而不是数组。您的for循环应该看起来像

for i in $wl_range; do
  WL[i]=$i
done

那就是说,不要使用for循环;使用@ IgnacioVazquez-Abrams的回答。