5.1.9 エスケープ文字
(1) エスケープ文字の種類
echoコマンドとprintコマンドでは,次の表に示す文字をエスケープ文字として解釈します。
エスケープ文字 |
意味 |
echoコマンド |
printコマンド |
---|---|---|---|
\a |
アラート文字(ベル) |
○ |
○ |
\b |
バックスペース文字 |
○ |
○ |
\c |
行末の改行を抑止する(\cの後ろに指定した文字は出力されない) |
○ |
○ |
\f |
フォームフィード文字(改ページ) |
○ |
○ |
\n |
改行文字 |
○ |
○ |
\r |
復帰文字 |
○ |
○ |
\t |
タブ文字 |
○ |
○ |
\v |
垂直タブ文字 |
○ |
○ |
\0nnn※1 |
1〜3桁の8進数で表されたASCIIコードの文字(0〜7) |
○ |
○ |
\xnn※2 |
1〜2桁の16進数で表されたASCIIコードの文字(0〜9,a〜f,A〜F) |
○ |
× |
\\ |
1つのバックスラッシュ文字 |
○ |
○ |
- (凡例)
○:指定できます。
×:指定できません。
- 注※1
指定したASCIIコード文字が1桁または2桁の場合,前に0を付けて3桁で指定しても,同じ意味として解釈されます。例えば,次の3つの指定は同じ意味として解釈され,アラート文字(ベル)が3回出力されます。
echo -e "\07"
echo -e "\007"
echo -e "\0007"
- 注※2
環境設定パラメーターESCAPE_SEQ_ECHO_HEXにYESを指定した場合だけ有効になります。ESCAPE_SEQ_ECHO_HEXパラメーターについては,「7. 環境ファイルで設定するパラメーター」の「ESCAPE_SEQ_ECHO_HEXパラメーター(16進数表記のASCIIコード文字をエスケープ文字として解釈するかを定義する)」を参照してください。
指定したASCIIコード文字が1桁の場合,前に0を付けて2桁で指定しても,同じ意味として解釈されます。例えば,次の2つの指定は同じ意味として解釈され,改行文字が2回出力されます。
echo -e "\xA"
echo -e "\x0A"
(2) echoコマンドに-eオプションと-Eオプションを指定しなかった場合の解釈
echoコマンドに-eオプション(エスケープ文字を解釈する)も-Eオプション(エスケープ文字を解釈しない)も指定しなかった場合,エスケープ文字の解釈は環境設定パラメーターESCAPE_SEQ_ECHO_DEFAULTの定義に従います。ESCAPE_SEQ_ECHO_DEFAULTパラメーターについては,「7. 環境ファイルで設定するパラメーター」の「ESCAPE_SEQ_ECHO_DEFAULTパラメーター(エスケープ文字関連のオプション省略時のechoコマンドの動作を定義する)」を参照してください。