Читайте файлы в сценарии оболочки ничего не распечатывает?

exit закончит сценарий полностью.

break пойдет один уровень выше в циклах - но не в операторах "if" (согласно моей странице справочника удара).

3
17.12.2013, 02:30
1 ответ

В мире Unix новая строка является разделителем строки, не разделителем строки. Текстовый файл состоит из серии строк, каждая из которых завершается символом новой строки. Это - символ перевода строки (число символов 10, который может быть представлен как LF, ^J, \012, \x0a, \n, …). Видеть Какой смысл того, чтобы добавить новую строку в конец файла?

В частности, каждый непустой текстовый файл заканчивается символом новой строки. Windows иногда работает по-другому: в некоторых приложениях, (но не все! Windows не последователен), последовательность CR LF (возврат каретки, перевод строки, иначе. ^M^J, \015\012, \x0d\x0a, \r\n, …), разделяет строки, таким образом, файл, который заканчивается в CRLF, является файлом, который заканчивается в пустой строке. Поэтому остерегайтесь при использовании редактора Windows для редактирования файлов, которые предназначены, чтобы использоваться elesewhere:

  • Они добавляют этот дополнительный символ CR перед символом новой строки, который некоторые приложения Unix (в особенности оболочки) рассматривают как обычный символ, часть строки.
  • Они заставляют Вас полагать, что существует пустая строка после последнего символа новой строки, тогда как последняя новая строка на самом деле завершает последнюю строку.

Если файл не пуст и не заканчивается в новой строке, это не правильно построенный текстовый файл Unix. Некоторые приложения реагируют путем игнорирования последней частичной строки, или путем усечения его. Это - то, что происходит здесь: Вы передали неполный текстовый файл для избиения, и он игнорирует последнюю, неполную строку.

5
27.01.2020, 21:16

Теги

Похожие вопросы