grep --color
のデフォルトの色の動作は何ですか いいえの場合[=WHEN ]が指定されていますか?
grepのマニュアルページには次のように記載されています:
-color
[=いつ ]、-色コード> [=いつ ]
一致した(空でない)文字列、一致する行、コンテキスト行、
ファイル名、行番号、バイトオフセット、および区切り文字(フィールドおよび
コンテキスト行のグループの場合)をエスケープシーケンスで囲みますそれらを端末にカラーで表示するには
。
…
いつ決して
ではありません 、常に
、またはauto
。
デフォルトの[=WHEN ] grep --color
の場合 なる:
grep --color=auto
または
grep --color=always
それとも、実装とプラットフォームに依存しますか?
GNU grep2.16を使用したUbuntu14.04でのテストでは:
echo "foo bar" | grep --color foo
結果はfoo
バーコード> 、ながら
echo "foo bar" | grep --color foo | grep --color bar
結果はfoo
バーコード>
、したがって、 grep --color =auto
のように見えます ここで有効です。ただし、これはWindowsまたはMacではテストしていません。この振る舞いが普遍的かどうかはわかりません。
[ =WHENのこのデフォルト ]はls--color
とは少し異なります ls
のマニュアルページ 状態:
-color
[=いつ ]出力を色付けします。
いつ デフォルトは常に
です または、決して
にすることはできません またはauto
。
ここで、行方不明の WHENの動作 明示的です。
承認された回答:
デフォルトはauto
。
grep --color
-color =auto
を書くのと同じです 。
これは十分に文書化されていないようです、または彼らは単純な<code>-colorを考慮しています 非推奨ですが、テストとそのソースコードの両方から確認できます:
case COLOR_OPTION:
if (optarg)
{
if (!strcasecmp (optarg, "always") || !strcasecmp (optarg, "yes")
|| !strcasecmp (optarg, "force"))
color_option = 1;
else if (!strcasecmp (optarg, "never") || !strcasecmp (optarg, "no")
|| !strcasecmp (optarg, "none"))
color_option = 0;
else if (!strcasecmp (optarg, "auto") || !strcasecmp (optarg, "tty")
|| !strcasecmp (optarg, "if-tty"))
color_option = 2;
else
show_help = 1;
}
else
color_option = 2;
break;
optarg
がないことに注意してください 結果はauto
と同じになります またはtty
。