カラーシェル出力のマニュアルページはありますか?


23

ご存知のように、カラー化された出力は、次のような特殊な文字シーケンスによって作成されます

echo -e "\e[34m Hello\n \e[0m"

これにより、青色の「Hello」という単語が生成されます。これを行うには、ウェブ上で検索する必要がありましたが、難しいのは、ソースが異なると何か違うことを言うからです。マニュアルがいくつかあるに違いないと思ったが、見つけることができなかった。でもapropos color似たようなもの。だから、質問は-信頼できるマニュアルをどこで見つけることができますか?


2
ANSIエスケープコードに関するドキュメントを探しています。(私は1つを調べる必要があるとき、ウィキペディアのページを使用する傾向があります。)
chepner

これらのエスケープシーケンスを必ずしも知る必要はないことに注意してください。いくつかのシェル(少なくともtcsh、zsh、fish)には、これらのシーケンスを明示的に記述する必要なく、色で出力するサポートが組み込まれています。
ステファンシャゼル

回答:


27

このページにリストするには情報源が多すぎます:

  • このコマンドecho -eは、拡張子を使用し\eてASCII 27(8進数の33または「\ 033」)としてレンダリングします。これらの用途を印刷するポータブルな方法printf(POSIX)。標準echo(POSIX)と比較してください。
  • あなたの例は次のように書き直すことができます

    printf "\033[34m Hello\n \033[0m"

  • カラーエスケープの標準はECMA-48(コード化文字セットの制御機能)です。
  • ECMA-48では、8.3.117 SGR-SELECT GRAPHIC RENDITIONに、8つの前景色と8つの背景色を設定するための制御シーケンスがリストされています。
  • また、コード39/49「デフォルトの表示色(実装定義)」および38/48「将来の標準化のために予約済み。ISO8613-6 [CCITT勧告T.416]で指定された文字の前景色の設定を目的としています」つまり、別の組織からの勧告がありますが、(これまでのところ、24年後に)標準の一部にはなりませんでした。
  • よく読んでみると、多くの場所で標準があいまいであり、異なる解釈が可能であることに気付くかもしれません。それはこれらのコントロールシーケンスの構文について説明しますが、それらの振舞いについて説明しません。そのためには、それぞれの端末のドキュメントにアクセスする必要があります。
  • xtermのためのドキュメントは中に発見されたxtermは制御シーケンスで見つかった12月の文書に精通前提とし、http://vt100.netを
  • 他の端末の場合、それらのマニュアルページはコントロールを列挙する場合があります(console_codesの Linuxコンソールの場合と同様)。
  • 他の端末は、自身を「xterm」として文書化します。議論については、xterm FAQのバージョンを比較する(コントロールをカウントする)を参照してください。。幸いなことに、色のコントロールはほとんど互換性があります(ただし、ncurses FAQ My terminal show some uncolored spaceを参照してください)。
  • また、次のマニュアルページを読むこともできます tputできます。これによりterminfo、シェルスクリプトで機能を使用できます。あなたの例は

    printf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
    
  • Bash Prompt HOWTOAdvanced Bash-Scripting Guideなどのいくつかのソースは色について言及していますが、(これらであっても)原則としてギャップと省略があり、ECMA-48に関しては役に立ちません。

  • 他のソース(引用されているものなど)からのWeb検索コピーなどで見つかる他のソースのほとんどは、実際の標準にはほとんど注意を払っていません。

ECMA-48の関連セクションは8.3.117-「SGR-SELECT GRAPHIC RENDITION」のようです。「blue」という単語について言及しているだけで、そこにあるコードは少なくとも私のXTermで機能します。
-l0b0

はい-説明を追加します。
トーマスディッキー

2
それは本当に素晴らしい答えです
セルギウス

1
xtermは256色モードもサポートしています。これはおそらく上記のマニュアルのいずれかに記載されています。
sendmoreinfo

コマンド出力であらゆる種類の色付けを行うことができるgrcパッケージを含む有用な情報については、wynnnetherland.com / journal /…を参照してください。
ジョー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.