次の特殊文字シーケンスで生成されたカラー出力があります。
echo -e "\e[34m Hello\n \e[0m"
これにより、「Hello」という単語が青色で生成されます。そのためにはウェブで検索をしなければなりませんでした。説明書があると思いましたが見つかりません。そんなことがあったり、apropos color
そんなことがあってもね。もしそうなら、問題は - 信頼できるマニュアルをどこで見つけることができるかということです。
ベストアンサー1
このページにリストする情報ソースが多すぎます。
- このコマンド
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 - グラフィック再現選択には、8つの前景色と8つの背景色を設定するための制御シーケンスがリストされています。
- また、コード39/49「デフォルト表示色(実装定義)」および38/48「将来の標準化のために予約されており、ISO 8613-6 [CCITT推奨T.416]で指定された文字の前景色を設定するために使用されます。」がリストされています。つまり、他の組織がこれを提案しましたが(24年が過ぎた今まで)、標準の一部にはなりませんでした。
- 注意深く読むと、標準がさまざまな場所であいまいになり、さまざまな解釈が可能であることがわかります。それを説明する通事論これらの制御シーケンスは説明しない。行動。これを行うには、その端末のマニュアルを確認する必要があります。
- xtermのドキュメントは次の場所にあります。XTerm制御シーケンス、DEC文書に精通していると仮定http://vt100.net
- 他の端末の場合は、マニュアルページでコントロールを列挙できます(Linuxコンソールで実行されます)。コンソールコード)。
- 他の端末は独自に「xterm」として文書化されており、xterm FAQを参照してください。数制御を使用したバージョンの比較。幸いにも色調整は最大互換性(ただしncurses FAQを参照)私の端末に着色されていないスペースが表示されます。)。
マニュアルページを読むこともできます。
tput
、これにより、次のことができます。terminfo
シェルスクリプトの機能。あなたの例は次のように書き直すことができますprintf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
いくつかのソース:BashプロンプトHOWTOそして高度なバッシュスクリプトガイド色が記載されていますが、通常ECMA-48には役に立たないギャップと欠落があります。
- 他のソース(引用元など)などのコピーをWeb検索して他のほとんどのソースを見つけることができますが、実際の基準にはほとんど関心を払わないことがよくあります。