これを行うには2つの方法が考えられます
方法 1:複数の行に分けたい文字列を、二重引用符ではなく単一引用符で囲みます。
echo 'Usage:
./prog -v version
-h help
-x ....'
出力:
Usage:
./prog -v version
-h help
-x ....
説明:
一重引用符内のすべてに注意してください。
- によって展開されません(そのため、内部
bash
などの変数は使用できません)$var
- 文字どおりに解釈され
echo
ます (を使用しない限り、エスケープされた文字を含むecho -e
)
方法 2 - メソッド内でインデントを使用するように更新:読みやすくするためにコード内で複数行に分割したい長い文字列が 1 つだけある場合は、次の\
表記法で二重引用符を使用できます。
print_help() {
{
echo \
"Lorem ipsum dolor sit amet, consectetur adipisicing elit,"\
"sed do eiusmod tempor incididunt ut labore et dolore magna"\
"aliqua. Ut enim ad minim veniam, quis nostrud exercitation"\
"ullamco laboris nisi ut aliquip ex ea commodo consequat."\
"Duis aute irure dolor in reprehenderit in voluptate velit"
}
print_help
出力:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
説明:
この\
文字は、シェル スクリプトで行の最後の文字として使用される場合、行の継続を意味します (つまり、「やあ、この現在のコマンドにはさらに多くのものが来るので、すべてを読むまでまだ実行しないでください」と考えてください)。それの!」)
個人的には、出力を正確に取得するものをより細かく制御するためにecho -e
chars ( ) を使用およびエスケープできるため、2 番目のルートを好みます =)\n