bash heredoc и блок кода
Скрипт должен регистрировать все, что в нем есть, для вывода и для записи в файл журнала.
Вот так все работает нормально:
#!/usr/bin/env bash
some_command_1
((
echo "Some text (in parenthness too)"
echo "Another text without them"
) &2>1 )|tee log.txt
some_command_2
exit 0
Он выводит данные на стандартный ввод/stderr и в файл журнала, как и ожидалось.
Но этот сценарий:
#!/usr/bin/env bash
some_command_1
((
cat <<EOF
Some text (in parenthness too)
Another text without them
EOF
) &2>1 )|tee log.txt
some_command_2
exit 0
Выдает ошибку:
предупреждение: здесь документ в строке 9 ограничен концом файла (требуется `EOF')
Другой текст без них: команда не найдена
./tmp.sh: строка 11: EOF: команда не найдена
ESCaping, подобный этому "(" ничего не делает.
Почему?