2014-04-10 2 views
1

Я потратил много времени, чтобы выяснить, в чем причина того, что я получаю ошибку в следующем простом коде. Я ценю, если кто-нибудь сможет его решить.Как назначить значение массиву строки в сценарии оболочки?

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] 

ответ

3

Вместо:

array[$i] = $line 

Вы должны удалить пробелы вокруг = в BASH:

array[$i]="$line" 

Или лучше использовать этот синтаксис для добавления элемент в arra y:

array+=("$line") 
Смежные вопросы