
以下は、ディレクトリ内に存在するファイルの内容を印刷するコードです。ファイルの内容は次のとおりです。
apple
banana
grapes
mango
名前=()
FILES=/path_to_dir/*
for f in $FILES
do
names+=($f)
done
result="$(cat ${names[@]})"
echo "$result"
echo "The names are "$result"" | mailx -s "names are " [email protected]
このため、結果変数の出力は以下のようになります
apple
banana
grapes
mango
しかし、電子メールに「$result」を印刷すると、電子メールのテキストに以下の出力が表示されました。
apple banana grapes mango
次のように複数行で名前をメールで送信したいです:
apple
banana
grapes
mango
どうすれば同じことを実現できるでしょうか?
答え1
試してみるecho -e "The names are:\n" "$result"
この-e
オプションにより、改行記号の\n
解釈が可能になり、変数は独自の二重引用符を持つことで正しく展開されます。