Как я сохраняю новые строки в заключенной в кавычки строке в Bash? [дубликат]

Этот вопрос уже имеет ответ здесь:

Я создаю сценарий для автоматизации создания апачских виртуальных хостов. Часть моего сценария идет как это:

MYSTRING="

ServerName $NEWVHOST
DocumentRoot /var/www/hosts/$NEWVHOST

...

"
echo $MYSTRING

Однако разрывы строки в сценарии игнорируются. Если я повторяю строку, выводит размолвку как одну строку.

Как я могу удостовериться, что разрывы строки печатаются?

84
задан codeforester 9 February 2017 в 02:55
поделиться

1 ответ

Добавьте кавычки, чтобы он работал:

echo "$MYSTRING"

Посмотрите на это так:

MYSTRING="line-1
line-2
line3"

echo $MYSTRING

это будет выполняться как:

echo line-1 \
line-2 \
line-3

т.е. echo с тремя параметрами, печать каждого параметра с пробелом между ними.

Если вы добавите кавычки вокруг $ MYSTRING , получится следующая команда:

echo "line-1
line-2
line-3"

т.е. echo с одним строковым параметром, который имеет три строки текста и два разрыва строки.

165
ответ дан 24 November 2019 в 08:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: