変数の間に改行文字を追加する

変数の間に改行文字を追加する

2 つの Unix 変数の間に改行文字 (\n) を追加するにはどうすればよいですか?

以下を試しましたが、別々の行ではなく 1 行で印刷されます。

h=hello
w=world
c="$h"$'\n'"$w"
echo $c
Output: hello world

答え1

解決策は機能しますが、$c希望どおりに展開するには echo ステートメントで引用符を付ける必要があります。

このような:

h=hello
w=world
c="$h"$'\n'"$w"
echo "$c"

しかし、これはほぼ間違いなく XY 問題です。最終的に何を達成する必要があるのでしょうか?

現状では、次のようにする方がはるかに良いでしょう:

h=hello
w=world
printf '%s\n' "$h" "$w"

-eあるいは、エコーするオプションを使用することもできます:

h=hello
w=world
c="${h}\n${w}"
echo -e "$c"

関連情報