linuxのOSに標準搭載されているechoですが、-eの引数をつけるだけでエスケープコードを有効にして実行することができるみたいです。
使用例
[shell] # echo -e "test\ntest2\n\ttest3\vtest4\rtest5\ntest6\btest7\n\0164\0145\0163\0164\070\n\x74\x65\x73\x74\x39\ftest10" test test2 test3 test5 test4 testtest7 test8 test9 test10 [/shell]
改行の他にもタブやバックスペース、ASCIIコードのエスケープも解釈されるようです。
echoについて
echo - テキストの行を表示する
引数 | 説明 |
---|---|
-n | 最後の改行を出力しない。 |
-e | バックスラッシュでエスケープした文字を解釈するようにする。 |
-E | バックスラッシュでエスケープした文字を解釈しない。(デフォルト) |
エスケープシーケンス一覧
エスケープ シーケンス |
説明 |
---|---|
\a | 警告(ブザー音が鳴る) |
\b | バックスペース |
\c | これ以上出力しない。 |
\e | エスケープ文字 |
\f | フォームフィード文字(ページ送り) |
\n | 改行 |
\r | 行先頭に戻る |
\t | 水平タブ |
\v | 垂直タブ |
\0NNN | ASCIIコードの文字(N:8進数1~3桁) |
\xHH | ASCIIコードの文字(H:16進数1~2桁) |
\0は通常NULL文字として扱われるみたいですが、centosで使用しているechoの場合は8進数のASCIIコードを出力用として使うみたいです。
OSにより使えるエスケープシーケンス及び引数が異なるみたいなのでmanにて確認してみてください。