exit
закончит сценарий полностью.
break
пойдет один уровень выше в циклах - но не в операторах "if" (согласно моей странице справочника удара).
В мире Unix новая строка является разделителем строки, не разделителем строки. Текстовый файл состоит из серии строк, каждая из которых завершается символом новой строки. Это - символ перевода строки (число символов 10, который может быть представлен как LF
, ^J
, \012
, \x0a
, \n
, …). Видеть Какой смысл того, чтобы добавить новую строку в конец файла?
В частности, каждый непустой текстовый файл заканчивается символом новой строки. Windows иногда работает по-другому: в некоторых приложениях, (но не все! Windows не последователен), последовательность CR LF (возврат каретки, перевод строки, иначе. ^M^J
, \015\012
, \x0d\x0a
, \r\n
, …), разделяет строки, таким образом, файл, который заканчивается в CRLF, является файлом, который заканчивается в пустой строке. Поэтому остерегайтесь при использовании редактора Windows для редактирования файлов, которые предназначены, чтобы использоваться elesewhere:
Если файл не пуст и не заканчивается в новой строке, это не правильно построенный текстовый файл Unix. Некоторые приложения реагируют путем игнорирования последней частичной строки, или путем усечения его. Это - то, что происходит здесь: Вы передали неполный текстовый файл для избиения, и он игнорирует последнюю, неполную строку.