У меня есть bash script, команды которого я соединяю цепочкой, используя &&
, так как я хочу, чтобы script остановился, если отдельные шаги завершились с ошибкой.
Один из шагов создает файл конфигурации на основе heredoc:
some_command &&
some_command &&
some_command &&
some_command &&
some_command &&
some_command &&
cat > ./my-conf.yml <<-EOF
host: myhost.example.com
... blah blah ...
EOF
... lots more commands ...
Как включить эту команду в цепочку &&
? Я пробовал:
- Размещение
&&
сразу после EOF. Не работает, поскольку EOF должен быть на линии сам по себе. - Размещение
&&
на отдельной строке после EOF. Не работает, потому что bash думает, что я пытаюсь использовать&&
в качестве команды. - Размещение
&&
перед редиректором>
. Не работает, поскольку редиректоры логически являются частью команды&&
-ed.
УТОЧНЕНИЕ:
Существует множество (многострочных) команд, следующих за командой, которая генерирует файл конфигурации из heredoc, поэтому в идеале я ищу решение, которое позволяет мне добавлять следующие команды после heredoc, что является естественным потоком script. То есть, я бы предпочел не использовать встроенные 20+ команд в одной строке.