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