명령 출력에 색상을 지정하려고 하면 다음과 같은 차이점을 이해하는 데 어려움을 겪습니다.
- 내 컴퓨터에 로그인하여 MOTD를 봅니다.
- /etc/update-motd.d/에서 실행 부분을 실행합니다.
설명하기 위해 이 테스트 스크립트를 만들었습니다.
#!/bin/bash
W="\e[0;39m"
R="\e[1;31m"
G="\e[1;32m"
echo -e "This is a test for ${G}GREEN${W} and ${R}RED${W}"
echo -e "Lets highlight some colors aight?" | grep --color 'ight'
직접 실행하면 두 줄 모두 색상이 있습니다.
root@server:/etc/update-motd.d# ./test-file
run-part를 통해 실행하면 두 줄 모두 색상이 있습니다.
root@server:/etc/update-motd.d# run-parts ./
하지만로그인하면 첫 번째 행만 색칠됩니다!
grep에 색상을 지정하거나 디버그하려면 어떻게 해야 합니까?
답변1
로그인 후 사라집니다 run-parts /etc/update-motd.d
. 이런 일이 run-parts
수시로 발생하는데,비대화형으로, 갱신합니다 /etc/motd
.
기본적으로 grep
비대화형으로 실행될 때는 색상이 표시되지 않습니다(합당한 이유). 시도해 볼 수도 grep --color=always
있겠네요 TERM=xterm grep --color=always
.
사용sudo update-motd
(8) 즉시 업데이트 /etc/motd
하고 업데이트된 파일을 확인하세요.