bashに改行記号を含む変数を出力するのと少し混乱しています。
var="Age:\n20\ncolor:\nred"
echo -e $var
Age:
20
color:
red
これは機能していますが、多くの人が、オプション付きのエコーは移植性がなく、 printfを使用する方が良いと言います。
私はprinfを使ったことがありません。エコーコマンドを放出するためのマニュアルによると:
printf '%s\n' "$var"
Age:\n20\ncoloe:\nred
ただし、これは変数内の\nを解析しません。マニュアルには通常、次の例があります。
printf "Surname: %s\nName: %s\n" "$SURNAME" "$LASTNAME"
しかし、それは私の場合ではなく、私の観点からは、使用するのは快適ではありません。入力するだけで、これを使用できることがわかりました。
printf "$var\n"
ポータブルですか?次に$varをメールコマンドに渡すと、改行が保存されますか?
printf "$var\n" | mail -s subj email@domain.com