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

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

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

$ cat test
My name is John

какие идеи?

26
задан ChocoDeveloper
05.12.2022 15:40 Количество просмотров материала 2680
Распечатать страницу

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 2022-12-06 23:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх