Bash で文字をエスケープする

Fumbani Banda 2023年1月30日
  1. エスケープ文字
  2. 二重引用符を使用する
  3. Bash のその他のエスケープ文字
Bash で文字をエスケープする

このチュートリアルでは、エスケープ文字とは何かを説明し、エスケープ文字の有益なリストを提供します。

エスケープ文字

エスケープ文字は、それ自体以外の代替解釈を表す文字です。bash でエスケープする必要のあるすべての文字を含む明確なリストはありません。ただし、推奨される一般的なルールは、疑わしい場合は、それを回避すると述べています。

二重引用符を使用する

エスケープ文字を二重引用符で囲むと、文字通りの意味が保持されます。

これを示すために、echo コマンドでアスタリスク*を使用してみましょう。ターミナルで echo *と入力すると、現在のディレクトリにあるすべてのファイルが表示されます。ただし、*を二重引用符で囲むと、標準出力にのみアスタリスクが表示されます。

echo "*"

次の出力が表示されます。

*

Bash のその他のエスケープ文字

bash でエスケープする必要のあるすべての文字を含む明確なリストはありません。これらのキャラクターのいくつかをテストすることで見つけることができます。次の bash スクリプトは、エスケープする必要のある文字とエスケープされた文字の表現についての洞察を提供します。

for x in {0..127} ;do
    printf -v char \\%o $x
    printf -v char $char
    printf -v res "%q" "$char"
    esc=Escape
    [ "$char" = "$res" ] && esc=-
    printf "%02X %s %-7s\n" $x $esc "$res"
done | sort

スクリプトは以下の出力を表示します。最初の 11 文字しか表示していません。最初のフィールドにはバイトの 16 進値があり、2 番目のファイルには文字をエスケープする必要がある場合は Escape があり、そうでない場合は - があります。最後の部分は、エスケープするときのキャラクターの表現を示しています。

00 Escape ''
01 Escape $'\001'
02 Escape $'\002'
03 Escape $'\003'
04 Escape $'\004'
05 Escape $'\005'
06 Escape $'\006'
07 Escape $'\a'
08 Escape $'\b'
09 Escape $'\t'
0A Escape $'\n'
0B Escape $'\v'
0C Escape $'\f'
0D Escape $'\r'
0E Escape $'\016'
0F Escape $'\017'
10 Escape $'\020'
著者: Fumbani Banda
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub