grep --colorのデフォルト値は=autoまたは=alwaysですか?

grep --colorのデフォルト値は=autoまたは=alwaysですか?

grep --color[なしの基本色の動作は何ですか?=いつ] 指定されていますか?

grepマニュアルページ状態:

--color[=いつ]、--colour[=いつ]

    一致する(空でない)文字列、一致行、コンテキスト行、ファイル名、行番号、バイトオフセット、および区切り文字(フィールドおよびコンテキストライングループの場合)をエスケープシーケンスで囲み、端末に色でマークとして印刷します。 ...  いつはいneveralwaysまたはauto

デフォルトかどうか[=いつ]grep --colorになる:

grep --color=auto

または

grep --color=always

それとも実装とプラットフォームによって異なりますか?

GNU grep 2.16を使用してUbuntu 14.04でテストした結果:

echo "foo bar" | \grep --color foo

明らかにするfoobar、しかし

echo "foo bar" | \grep --color foo | \grep --color bar

明らかにするfoobar、ここではこれがうまくいくようですgrep --color=auto。しかし、この動作が一般的なものかどうかは、WindowsやMacでテストされていません。

このデフォルト設定は[=いつls --color]はマニュアルページの状態とは若干異なりますls

--color[=いつ]

    出力を色分けします。  いつデフォルトはalwaysまたはできますneverまたはauto

ここで行方不明者の行動は次のとおりです。いつ明らかです。

答え1

デフォルト値はauto

grep --color書くことも同じだ--color=auto

これはよく文書化されていないようであるか、単にもはや--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;

anがなければ、oroptargauto同じ結果が得られますtty

関連情報