メール本文の異なる行に値を印刷するシェルスクリプト

メール本文の異なる行に値を印刷するシェルスクリプト

以下は、ディレクトリ内に存在するファイルの内容を印刷するコードです。ファイルの内容は次のとおりです。

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解釈が可能になり、変数は独自の二重引用符を持つことで正しく展開されます。

関連情報