Ref: http://groups.google.com/group/comp.unix.shell/msg/2624bc95ed265f70

1. делаем while read; do echo "$REPLY"; done
2. файл не заканчивается пустой строкой
3. ???????
4. отказ

в смысле последняя строка проёбана. (крон себя хтате так же ведёт.) чо делать?

оказывается, если ^D встречается посередине текста, read вываливается с ошибкой, но -- это важно -- прочитанный текст в $REPLY всё равно сохраняется. то есть нужно проверять непустоту $REPLY после цикла. это не очень хорошо, поскольку "после цикла" означает что строку мы достанем, но обработать уже не сможем, поздно. поэтому нужно писать враппер типа такого:

function NextLine () {
read "$@" && return 0
[[ "$REPLY" ]] && return 0
return 255
}



URL записи