たとえば、赤などのカラーテキストを印刷するためにエコーを使用する場合、コードは次のようになります。echo -e "\e[1;31m This is red text \e[0m"
この例では、31は赤のコードであり、他の色の数は次のとおりです。
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Purple 0;35 Light Purple 1;35
Brown 0;33 Yellow 1;33
Light Gray 0;37 White 1;37
背景色の場合、数字は40〜47です。
私の質問は:ここで正確に何を意味し\e
(31以降)は何を意味しますか?マニュアルページで\ eが脱出口であることを読みましたが、それが何を意味するのか理解していません。[
m
答え1
「シーケンス要素」の一部です。ANSIエスケープシーケンスまた〜として知られていますECMA-48CSIシーケンスは1976年に初めて採用されました。
[
具体的には制御シーケンスインポーター'
タイプman console_codes
コードと一部の文書は、ほぼすべての* nixディストリビューションで見ることができます。
答え2
正確に言えば、カラーコードは次のように定義されます。
Opening
RED= "\033[31m" or "\e[1;31m"
CYAN="\033[36m" or "\e[1;31m"
Closing = "\033[m" or "\e[0m"
したがって、基本的に、これは異なる端末がカラーコードを解釈し、これらの要素内のテキストにタイトルを追加する方法です。これは、端末が何を意味するのかを理解するのを助ける奇妙な方法です(たとえば、16進数または2進数など)。
答え3
良い説明が見つかりましたここ(少なくとも私には大丈夫です。:-))。それがあなたにうまくいくかどうかはわかりません。
まず、コンソールに次のように入力します。
echo "^[[0;31;40mIn Color"
最初の文字はエスケープ文字で、^と[2文字のように見えます。これを印刷するには、CTRL + Vを押してからESCキーを押す必要があります。他のすべての文字は通常の印刷可能な文字であるため、色に赤い文字列が表示されます。次のように入力して復元するまで、タイプはその色を保持します。
端末でカラーモードを設定するために使用されるエスケープコードです。普通の文字で印刷するとこんな感じです。
答え4
\e
Escape Characterの略語です。 the<ESC>[
とtheは、m
ANSI端末制御シーケンスのサブセットであるANSIカラー制御シーケンスの開始タグと終了タグです。ほとんどは数字で始まり<ESC>[
、その後に実装される機能を表す文字が続きます(たとえば、カーソルを行に移動、行の最後まで消去、カーソルを保存した位置に戻すなど)。