• ` 改行 \n` を buildin 関数の echo で出力するには e オプションが必要
  • printf はオプションなしで改行
  • \n とシェル内での改行は異なり Bashでは $'\n'で表す

※ 以下のコード例中の same 等の出力結果は説明のための注記です。シェルには // によるコメント構文は存在しない(コメントは # のみ)ため、このブロックをそのままスクリプトとして保存・実行すると // の行でエラーになります。コピー&ペーストで実行する場合は出力の注記行(# で始まらない行)を除いてください。

a="aaa"$'\n'"bbb"$'\n'"ccc"
b="aaa
bbb
ccc"
c="aaa\nbbb\nccc"


if [ "$a" = "$b" ]; then
  echo "same"
fi
# => same

if [ "$a" = "$c" ]; then
  echo "same"
fi
# 同じではないので出力されない

if [ "$b" = "$c" ]; then
  echo "same"
fi
# 同じではないので出力されない