Как работает & ldquo; cat < < EOF & Rdquo; работать в Bash?

Альтернатива

Если ваша консоль не пуста, щелкните правой кнопкой мыши в области консоли> Настройки ...> измените значение размера буфера консоли (символы) (рекомендуется) или снимите флажок Конечный вывод консоли (не рекомендуется):

515
задан Benjamin W. 4 September 2017 в 22:08
поделиться

1 ответ

Это называется форматом heredoc , чтобы предоставить строку в стандартный ввод. См. https://en.wikipedia.org/wiki/Here_document#Unix_shells для получения дополнительных сведений.


From man bash :

Here Documents

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

Все строки, прочитанные до этого момента, затем используются в качестве стандартного ввода для команды.

Формат здесь-документов:

  << [-] слово 
здесь-документ 
разделитель 
 

Без расширения параметров, подстановки команд, арифметики раскрытие, или раскрытие имени пути выполняется для слова . Если какие-либо символы в слове заключены в кавычки , разделитель является результатом удаления кавычек в слове , а строки в документе не раскрываются. Если слово не заключено в кавычки, все строки здесь-документа подвергаются расширению параметров, подстановке команд и арифметическим операциям. расширение. В последнем случае последовательность символов \ игнорируется, а \ необходимо использовать для заключения в кавычки символов \ , и `.

Если используется оператор перенаправления << - , то все начальные символы табуляции удаляются из строк ввода и строки , содержащей разделитель . Этот позволяет естественным образом размещать здесь-документы в сценариях оболочки.

470
ответ дан 22 November 2019 в 22:20
поделиться
Другие вопросы по тегам:

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