Возможно ли вставить heredoc в функцию bash?
Тривиальный пример ниже приводит к ошибке: ./heredoc_in_function.sh: 10: Syntax error: end of file unexpected (expecting "}")
#!/bin/sh
my_function () {
cat <<HEREDOC
heredoc contents
HEREDOC
}
my_function
Окружающая обстановка:
- Ubuntu 11.04 (GNU / Linux 2.6.38-8-server x86_64)
- GNU bash, версия 4.2.8 (1) -релиз (x86_64-pc-linux-gnu)
Ответы:
Ваш код выглядел хорошо для меня, поэтому я скопировал его строка за строкой, и он работал для меня:
Можете ли вы перепечатать файл вручную, чтобы убедиться, что вы не пропустили или добавили пробелы / табуляции / и т. Д.?
Кроме того, как ты это делаешь? Я сделал
chmod +x test.sh
а потом./test.sh
РЕДАКТИРОВАТЬ: я получил ту же ошибку, что и вы, когда я добавил пробел в начале строки с закрывающим HEREDOC.
Дальнейшее примечание: завершающий пробел за закрытием
HEREDOC
также может вызвать этоисточник
HEREDOC
может привести к