У меня есть небольшой фрагмент кода, который читает файл, $ FUNCTION_FILE, который содержит список имен функций в формате:
func1
func2
func3
Он прочитает строку, запустит функцию и будет повторять до тех пор, пока файл не будет готов. Вот фрагмент:
while read line; do
LINE_NUMBER=`expr $LINE_NUMBER + 1`
echo "LINE_NUMBER=$LINE_NUMBER"
$func
done <$FUNCTION_FILE
Я попал в ситуацию, когда иногда этот раздел кода прекращает чтение «$ FUNCTION_FILE» перед завершением и переходит к остальной части сценария. Иногда он читает только первую строку и пропускает остальные, иногда только вторую; Я никогда не вижу сообщение "LINE_NUMBER = $ LINE_NUMBER" для последующих строк.
Предполагая, что файл правильный, что может вызвать эту проблему?