2015-11-26 4 views
0

Я читаю файл, но данные массива существуют только в цикле. В конце кода я пытаюсь выполнить эхо-вкладку [3], но она пуста.при чтении строки в массив, bash

ls -t > lista.txt 
N=$(wc -l lista.txt) 
N=${N:0:1} 
tab[$N]=0 


let I=0 
while read line 
do 
    tab[$I]="$line" 
    echo ${tab[$I]} 
    ((I+1)) 
done <lista.txt 
echo ${tab[3]} #no Value 

ответ

1

((I+1)) не изменяет значение $I. Вы должны присвоить ей значение

((I = I + 1)) 

или использовать приращение

# You can use any of the following lines: 
((I++)) 
((++I)) 
((I += 1)) 
+0

это работает ... сог в петле эхе показывает мне каждую строку. – Xalion

+0

@Xalion: Да, потому что $ I остается 0, и он изменяется и показывает '$ {tab [0]}' все время. – choroba