Да, это в грамматике оболочки POSIX.Вы также можете иметь более одного документа здесь для одной и той же команды (в некоторых других примерах используются два вызова cat
, но это также работает):
cat <<EOF1 <<EOF2
first here-doc
EOF1
second here-doc
EOF2
Это надумано(используя 2 вот-документа для стандартного ввода), но если вы подумаете о предоставлении ввода для различных файловых дескрипторов, это сразу же имеет смысл.
Также есть возможность полностью удалить cat
.Почему бы не сделать этот документ доступным непосредственно для cmd
:
cmd << EOF
input
here
EOF