Как передать переменные HEREDOC в bash?

Я хочу сделать что-то вроде этого:

$ NAME=John
$ cat << '==end' > test
My name is $NAME
==end

$ cat test
My name is John

какие идеи?

5
задан ChocoDeveloper
источник

1 ответов

cat <<EOF > test
My name is $NAME
EOF

или даже

cat <<==end > test
My name is $NAME
==end

работал для меня.

похоже, когда вы берете ==end на ' переменная не заменить.

Ах, вот она в на странице (смотри 3.6.6):

формат вот-документов:

      <<[-]word
              here-document
      delimiter

нет расширения параметров, подстановки команд, арифметического расширения или расширение пути выполняется на word. Если любые характеры внутри word а цитирую, the разделитель результат удаления цитаты на слове, и строки в этом документе не расширяются. Если word это без кавычек, все строки документа подвергаются расширению параметров, подстановке команд и арифметическому расширению. [...]

18
отвечен rush 2012-08-02 07:33:03
источник

Другие вопросы bash linux shell-script