GREP_COLORS 환경 변수의 기본값

GREP_COLORS 환경 변수의 기본값

내 Ubuntu 20 시스템에서 이 옵션을 사용할 때 기본 색상은 grep --colors=auto일반 배경에 빨간색 텍스트입니다. 이 동작은 환경 변수에 값을 제공하여 무시할 수 있습니다 GREP_COLORS. 예를 들어 일치 항목이 빨간색 배경에 일반 텍스트 색상으로 표시되도록 export GREP_COLORS='1;37;41'한 다음 값을 설정합니다. 그러나 내보내기 전에 빈 줄이 있습니다. 왜 그럴까요? 특히 기본값이 없는 것으로 나타나는 이유는 무엇입니까?grepecho $GREP_COLORSecho $GREP_COLORSGREP_COLORS

답변1

GREP_COLORS에 기본값이 없는 것처럼 보이는 이유는 무엇입니까?

환경변수 때문에GREP_COLORS 사용할 수 있다기존 기본 색상을 재정의합니다. 그런 뜻은 아니야~ 해야 하다사용.

이것GNU grep 기본색상은 다음과 같이 정의됩니다 grep.c.

/* The color strings used for matched text.
   The user can overwrite them using the deprecated
   environment variable GREP_COLOR or the new GREP_COLORS.  */
static const char *selected_match_color = "01;31";      /* bold red */
static const char *context_match_color  = "01;31";      /* bold red */

/* Other colors.  Defaults look damn good.  */
static const char *filename_color = "35";       /* magenta */
static const char *line_num_color = "32";       /* green */
static const char *byte_num_color = "32";       /* green */
static const char *sep_color      = "36";       /* cyan */
static const char *selected_line_color = "";    /* default color pair */
static const char *context_line_color  = "";    /* default color pair */

parse_grep_colors (void)나중에 환경 변수에서 값을 가져오려고 시도하는 함수가 있습니다 . GREP_COLORS비어 있거나 구문이 유효하지 않은 경우 무시됩니다. 예를 들어, 설정하면 GREP_COLORS='random text'무시됩니다.

관련 정보