Волшебство кота - конец ввода - PullRequest
2 голосов
/ 31 августа 2009

Когда в командной строке вводится «cat> xx.txt << EOF», дальнейший ввод из cmdline поступает в файл xx.txt до тех пор, пока не будет записан EOF. EOF здесь не является священным словом, если вместо этого команда была cat> xx.txt << BBB, то ввод cmdline переходит в xx.txt до тех пор, пока не будет написано BBB. Я не знаю, что за этим стоит (<< end_of_input_sequence) это. Страница справочника о кошках мало что объясняет. Я видел это только в сценариях и т. Д. </p>

Ответы [ 3 ]

9 голосов
/ 31 августа 2009

Это особенность оболочки, а не cat - поэтому вы не найдете ее в руководстве cat.

Он известен как «Здесь документ» - см. Эту страницу Расширенное руководство по написанию сценариев для получения некоторой документации.

7 голосов
/ 31 августа 2009

Это называется здесь документ . Я считаю, что он впервые появился в оболочках, но некоторые языки программирования, такие как Perl, Ruby и PHP, также реализуют этот стиль.

4 голосов
/ 31 августа 2009

Этот синтаксис называется Здесь документ (прокрутите немного, чтобы найти его).

Это не относится ни к какой команде, не к коту больше, чем к любой другой команде; и это можно найти в человеке раковины; например, man bash:

3.6.6. Здесь документы

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

(не полная цитата - в человеке есть что почитать)


Кстати, это синтаксис, который был повторно использован в некоторых языках программирования, таких как PHP; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...