설정을 만지작거리고 있지만 GREP_OPTIONS
제대로 작동하지 않습니다. 이유가 궁금합니다.
간단한 테스트 명령 출력:
richard@ubuntu:~$ echo $GREP_OPTIONS
richard@ubuntu:~$
richard@ubuntu:~$ ls | grep o
Desktop
downloads
Dropbox
ebooks
workspace
richard@ubuntu:~$ ls | grep o --color=always | less -R
richard@ubuntu:~$ export GREP_OPTIONS="--color=always"
richard@ubuntu:~$ ls | grep o | less -R
- 첫 번째 grep은 터미널에 색상으로 출력됩니다(각 "o"는 빨간색임).
- 두 번째 grep은 더 적은 색상으로 출력됩니다(1과 동일).
- 그러나 세 번째 grep은 출력이 적지만 흑백이지만 컬러여야 합니다.
그래서 grep이 그것을 무시하고 있는 것 같습니다 GREP_OPTIONS
. 이것은 버그인가요, 아니면 제가 뭔가 잘못하고 있는 건가요?
(우분투 12.04.2, GNU grep 2.10)
답변1
grep o
컬러 출력이 생성되는 경우 이는 grep
또는에 대한 별칭이거나(또는 더 많은 옵션이 있을 수 있음) 또는를 포함하는 값으로 설정됩니다. 비어 있으므로 별칭이어야 합니다.grep --color=auto
grep --color=always
GREP_OPTIONS
--color=auto
--color=always
$GREP_OPTIONS
색상이 표시되지 않으므로 별칭은 to (합리적인 선택) grep o | less -R
여야 합니다 . grep --color=auto
별칭을 사용하면 grep
명령은 항상 --color
명령줄에서 옵션을 받으며 해당 옵션은 환경 변수보다 우선합니다.
환경 변수를 사용하려면 ~/.bashrc
또는 세션 실행 에서 별칭 정의를 제거하세요 unalias grep
. alias grep='grep --color=auto'
다음으로 바꿀 수 있습니다 export GREP_OPTIONS='--color=auto'
. 다음을 제외하면 본질적으로 동일한 의미를 갖습니다.
- 다른 값으로 설정하면
GREP_OPTIONS
후자만 무시됩니다. grep
이 별칭은 대화형 셸에서 실행할 때만 적용되지만 설정은 스크립트 및 기타 애플리케이션에서 실행할 때도GREP_OPTIONS
적용됩니다 .grep
--color=always
다른 옵션을 넣지 마십시오 GREP_OPTIONS
. 많은 구문 분석이 중단될 수 있는 유일한 안전한 옵션 입니다 grep
. 그 밖의 모든 것에는 별칭을 사용하십시오. 이러한 이유로 GNU grep의 향후 버전에서는 더 이상 이 옵션을 지원하지 않습니다.--color=auto
GREP_OPTIONS
별칭 정의 ~/.bashrc
(셸 설정)가 들어가고 환경 변수 정의 ~/.profile
(세션 설정)가 들어갑니다. 바라보다모든 쉘이 읽을 수 있는 ".bashrc"에 해당하는 파일이 있습니까?
별칭 없이 명령을 한 번만 실행하려면 \grep
대신 실행하십시오 grep
. 이름의 일부를 인용하면 별칭 조회가 무시됩니다.