1. ホーム
  2. bash

[解決済み] Bashで引用符で囲まれた文字列の改行を保持するにはどうすればよいですか?重複

2023-01-12 20:46:10

質問

私は、apache のバーチャルホストの作成を自動化するスクリプトを作成しています。私のスクリプトの一部は次のようなものです。

MYSTRING="<VirtualHost *:80>

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

...

"
echo $MYSTRING

しかし、スクリプト内の改行は無視されます。文字列をechoすると、1行で吐き出されます。

どうすれば、改行が表示されるようになりますか。

どのように解決するのですか?

引用符を追加して動作するようにする。

echo "$MYSTRING"

このように見てください。

MYSTRING="line-1
line-2
line3"

echo $MYSTRING

というように実行されます。

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

すなわち echo のように3つのパラメータを指定し、各パラメータの間にスペースを入れて表示します。

を引用符で囲むと $MYSTRING で囲むと、結果のコマンドは次のようになります。

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

すなわち echo のように、3行のテキストと2つの改行を持つ1つの文字列パラメータを持つ場合です。