grep --color의 기본값은 =auto 또는 =always입니까?

grep --color의 기본값은 =auto 또는 =always입니까?

grep --color[가 없는 기본 색상 동작은 무엇입니까?=언제] 지정되었습니까?

grep매뉴얼 페이지상태:

--color[=언제], --colour[=언제]

    일치하는(비어 있지 않은) 문자열, 일치 라인, 컨텍스트 라인, 파일 이름, 라인 번호, 바이트 오프셋 및 구분 기호(필드 및 컨텍스트 라인 그룹의 경우)를 이스케이프 시퀀스로 묶어 터미널에 색상으로 표시로 인쇄합니다. ...  언제never,always, 또는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 이 없으면 or optargauto동일한 결과를 얻습니다 tty.

관련 정보