
사용자 정의 색상을 갖도록 gnome-terminal
구성 했습니다 ..bashrc
PS1='${debian_chroot:+($debian_chroot)}\[\033[00;37m\][\[\033[00;32m\]\t\[\033[00;37m\]] \[\033[01;34m\]\u\[\033[00;37m\]@\[\033[01;34m\]\h\[\033[00;37m\]:\[\033[01;34m\]\w\[\033[01;32m\]$ '
이는 다음과 같은 것을 실행할 때를 의미합니다.
첫 번째 줄이 흰색이어야 하고 녹색으로 입력한 명령을 만들기 전까지는 흰색이었음에도 불구하고 출력은 다음과 같습니다.
그렇다면 명령 색상을 녹색으로 설정해도 출력 텍스트 색상이 영향을 받지 않게 하려면 어떻게 해야 합니까? 저는 GNOME 3.16과 함께 Ubuntu GNOME 15.04를 실행하고 있습니다.
정보 업데이트:
sudo rkhunter --nocolor --update
실행하면 출력이 모두 녹색으로 표시되는 것을 확인했습니다 .
답변1
문제는 명령을 녹색으로 설정했지만 색상 이스케이프 코드를 닫지 않는다는 것입니다. 따라서 자체 서식이 적용되지 않은 명령의 출력을 포함하여 모든 후속 행은 해당 색상으로 표시됩니다. 해결 방법(원천), trap
DEBUG 신호에 닫기 코드를 인쇄할 수 있습니다. 이 줄을~/bashrc
trap 'printf "\e[0m" "$_"' DEBUG
그러면 인쇄됩니다 \e[0m
(열린 색상 코드가 닫힙니다). 신호 trap
에 연결 되기 때문에 DEBUG
실행하는 명령보다 먼저 실행됩니다. 따라서 타격 Enter과 실제로 실행되는 명령 사이. 설명된 대로 man bash
:
sigspec이 DEBUG인 경우 arg 명령은 모든 단순 명령(명령, case 명령, select 명령, 명령의 모든 산술) 이전과 쉘 함수에서 첫 번째 명령이 실행되기 전에 실행됩니다(위의 SHELL GRAMMAR 참조).