Решение ghostdog74, предоставленное , полезно, но имеет недостаток.
IFS не может использовать двойные кавычки (по крайней мере, в Mac OS X), но может использовать одинарные кавычки, например:
IFS=$'\n'
Это хорошо, но не совместимо с тире, может быть, это и лучше:
IFS='
'
Пустая строка будет съедена в следующей программе:
IFS='
'
for line in $(cat file)
do
echo "$line"
done
Но вы не можете добавлять двойные кавычки вокруг $(cat file)
, он будет обрабатывать весь файл как одну строку.
for line in "$(cat file)"
Если вы хотите обработать пустую строку, используйте следующую команду:
while read line
do
echo "$line"
done < file