У меня есть скрипт, который читает файл строка за строкой и делает вещи, основываясь на том, что он читает. Одна из вещей, которые он делает - это ssh на удаленный сервер и получает некоторую информацию. По какой-то причине это полностью за мной, это останавливает чтение строк из файла.
Сценарий по сути (я вырезал много для упрощения вопроса, так что не волнуйтесь, если он выглядит так, будто ничего не делает):
cat $csv | while read line; do
shopt -s nocasematch
for j in "${file_list[@]}"; do
found=0;
for i in $(ssh some_server "ls /some_path/${line:0:1}/${line:1:1}/$line*"); do
if [[ $i =~ .*$j$ ]]; then
echo "do something";
found=1;
break;
fi;
done;
if [[ $found -ne 1 ]]; then
echo "don't have $j";
fi;
if [[ $found -ne 1 && $j == '\.pdf' ]]; then
getPDF $line ${dest};
fi;
done;
shopt -u nocasematch
done
Этот скрипт запускается только в первой строке CSV. Если я заменю часть скрипта «ssh» чем-то другим, он будет проходить по всем строкам файла. Что дает?