Я пытаюсь прочитать часть файла и остановить и конкретную строку, используя bash. Я не очень знаком с bash, но я читал руководство и различные ссылки, и я не понимаю, почему что-то вроде следующего не работает (но вместо этого выдает синтаксическую ошибку):
while { read -u 4 line } && (test "$line" != "$header_line")
do
echo in loop, line=$line
done
Я думаю, что я мог бы написать цикл, который проверяет переменную "done", а затем выполнить мои реальные тесты внутри цикла и установить подходящее значение "done", но мне любопытно: 1) почему вышеописанное не работает, и 2) есть ли небольшая коррекция, которая бы работала? Я все еще не совсем понимаю, когда использовать [, (, {или ((), поэтому, возможно, сработает какая-то другая комбинация, хотя я пробовал несколько.
(Примечание. "Read -u 4 line" отлично работает, когда я вызываю его над циклом. Я открыл файл в файловом дескрипторе 4.)