我花了很多时间来弄清楚以下简单代码中出错的原因。如果有人能解决,我感激不尽。
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]
答案 0 :(得分:3)
而不是:
array[$i] = $line
您需要删除BASH中=
周围的空格:
array[$i]="$line"
或者更好地使用此语法在数组中附加元素:
array+=( "$line" )