MOTD와 구동 부품의 셰이딩 출력이 다릅니다.

MOTD와 구동 부품의 셰이딩 출력이 다릅니다.

명령 출력에 색상을 지정하려고 하면 다음과 같은 차이점을 이해하는 데 어려움을 겪습니다.

  • 내 컴퓨터에 로그인하여 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하고 업데이트된 파일을 확인하세요.

관련 정보