GNU Bashマニュアルによると(セクション 3.1.2.4 ANSI-C リファレンス)$ '\ E'は「エスケープ文字(ANSI Cではありません)」に展開する必要があります。このエスケープ文字は何ですか?これは\
、次の文字のリテラル値を保持する機能を果たすバックスラッシュ自体と同じですか?
たとえば、echoコマンドを使用して端末でこれをどのようにデモンストレーションできますか?
ベストアンサー1
$'\E'
代表するASCIIエスケープ文字(例:\x1b
/ \033
/ CtrlV+ Esc)バックスラッシュの代わりに:
% printf '%x\n' \'$'\E'
1b
この文字の一般的な用途は、制御シーケンス、すなわち次のバイト部分の代替解釈を表すことです。たとえば、シェルプロンプトの一部としてよく使用されます。ANSIエスケープシーケンス特定のテキストに色を付けるように端末に指示したり、端末にカーソル位置を要求するなどの操作を実行します。*
% printf '\033[36m%s\033[0m\n' 'this is in cyan'
this is in cyan
% printf '\033[2J' # clear the screen
tput
*しかし、これらのユースケースのほとんどは一般的に認識され、使用するより直感的なterminfoを使用したいと思います。ただし、これら2つの基本的な例は一般的に理解する必要があります。