改行や TAB を含む文字列は単に echo に渡しても正しく表示されない。制御文字をそのまま表示させるには -e オプションとダブルクォートが必要である。

LIST=`ls -l`
echo $LIST               # 改行は半角スペースに変換される
echo -e "$LIST"          # 改行はそのまま正しく表示される
echo -e "ABC\\nDEF"      # 改行が表示
echo -e "ABC\\\\nDEF"    # \n が表示

また -e オプションの代わりに $ とシングルクォートでも実現できる。こちらの方がエスケープシーケンスの扱いが楽である。

echo $'ABC\nDEF'         # 改行が表示
echo $'ABC\\nDEF'        # \n が表示







タグ:

Linux Shellscript
最終更新:2008年09月14日 10:00