如何在shell脚本中为字符串数组赋值?

时间:2014-04-10 16:49:24

标签: linux bash shell

我花了很多时间来弄清楚以下简单代码中出错的原因。如果有人能解决,我感激不尽。

i=0
while read line
do
    if [[ -z "$line" ]]; then
        echo "End of numbers"
        break
    else
    {
        echo "$line is not empty"
        array[$i] = $line
        echo array[$i]
        ((i += 1))  

    }
    fi
done

输出:

sss
sss is not empty
command.sh: line 10: array[0]: command not found
array[0]
ss2
ss2 is not empty
command.sh: line 10: array[1]: command not found
array[1]

1 个答案:

答案 0 :(得分:3)

而不是:

array[$i] = $line

您需要删除BASH中=周围的空格:

array[$i]="$line"

或者更好地使用此语法在数组中附加元素:

array+=( "$line" )