その背後に隠された歴史が何で、$COLOR
なぜ誰もそれを使用しないのは、使っても安全ですか?、そしてそれが何のために使用されるべきであるか。
COLOR="1"
「Linux v2 Debian VM用のWindowsサブシステム」にある理由は何ですか?一部のカスタムスクリプトを除いて、私のシステムにはシェルrcスクリプトがありませんalias
。なぜ?GitHubはそれを使用しませんしかし、この混乱は:
NO_COLOR
、、、CLICOLOR
?CLICOLOR_FORCE
世界に賢明なUnixの専門家がいますか?よろしくお願いします。
答え1
ご覧のとおり、この領域には標準化はありません。プログラムが色を使用する必要があるかどうかを知るために環境を標準化することに関するいくつかの議論(そして最近の一部)がありましたが、これらの提案は問題の多くを解決せず、新しい環境変数だけを生成するだけです。
したがって、各プログラムをチェックして色を処理する方法を確認してください。良いプログラムはTERMをチェックし、ターミナルが何をすることができるか(ライブラリを使用して)質問し、コンソールまたはパイプ/ファイルに書き込んでいることを確認する必要があります。しかし、問題があります。パイプラインに転送すると、他の色を処理することをお勧めしますが、そうでない場合もあります。たとえば、プログラムの結果をgrepにパイプしたい場合がありgrep
、grepは一致する文字列の色を指定します(ただし、最初のプログラムでは色を書くことはできません)。一方、diff
私たちless
は色を表示するのではなく、色をパイプするためにdiffが必要です。したがって、一般的な環境変数ソリューションは完璧ではありません。
MicrosoftにはUnixのような独自の方法がないため、一部の移植可能なプログラムには問題を解決する第3の方法があり、混乱が加重されます。
そして、あなたの質問は追加の問題をもたらすことができます。カラープロンプトを持つために、過去には.bashrcスクリプトで変数を使用できます。方法を提供多くの環境変数(rcファイルは実際の環境から来ており、新しい環境では実行されません)。したがって、端末で色処理ロジックを単純化するためにCOLORを取得できます(接続方法によって異なります)。
だからそれは混乱です。とにかく、Debianの優れたポリシーの1つ(そしてLinuxの初期には私たちが思ったよりもはるかに複雑でした)は、プログラムを実行するために必要な環境変数がないということでした。したがって、この環境変数を無視してください。何も必要ありません。
したがって、各プログラム(マンページ)を確認し、各プログラムがCOLORを使用するかどうか、およびそれを解釈する方法を教えてください。標準化されていないため、回答できません。 (グーグルしてもsite:manpages.debian.org "COLOR"
内容が多すぎてあまり役に立ちません。)