AFAICT、GNUのマニュアルページはすべて、それが意味するものをgrep
指定していません。info grep
--color=auto
私はこの選択の意味がすぐにはっきりしない地球上で数少ない人の一人であることに違いありません。
私は「そう--color=auto
です。どこかに間」--color=never
と間に--color=always
あるがまだ指定されていない部分が多すぎます。
答え1
ルールは と同じなので、ls
に文書化することをお勧めしますman ls
。引用:
ファイルの種類を区別するための色の使用はデフォルトで無効になっており、--color = neverが使用されていても同様です。 --color = autoを使用すると、lsは
標準出力が端末に接続されている場合にのみカラーコードをエクスポートします。 LS_COLORS 環境
変数は設定を変更できます。これを設定するには、dircolors コマンドを使用します。
したがって、出力がパイプに入るのではなく、出力が端末に入るときにのみコマンドが色の書式を追加するようにし、パイプを使用するプログラムは色の書式をうまく処理できない可能性があります。
答え2
これはGNUプログラムなので、grep
ソースコードを見ることは別のオプションかもしれません。
grep内部テストstatic int color_option
または。0
1
2
0
カラー出力を使用しないでください。1
常に色を使う2
端末で印刷するときは色のみを使用してください。
CLIでgrepをパラメータとして指定すると、--color=auto
内部的に変数がにcolor_option
設定されます2
。
color_option
同じ場合は、カラー出力を無効にして、端末またはユーザーへのリンクが2
grep
あるかどうかをさらにテストしてください。前の項目が真でカラー出力が許可されている場合は、引き続き使用する色を評価し、最後に色を印刷します。 STDOUT
shell environment variables
grep
CLI
ソース: (grep 2.21)
grep.c line 306, 2374, 2440
colorize-posix.c line 36
man isatty