모든 명령에 대한 tcsh 출력 색상 변경

모든 명령에 대한 tcsh 출력 색상 변경

터미널 반품에 다른 색상을 원합니다.

예:

$ pwd                //when return key is hit 
$ /home/user/tools   //return value printed in different color, say: grey color

이 요구 사항은 특정 명령은 아니지만 pwd터미널에 던져진 모든 명령에 대해 내 로그는 다음과 같습니다.

  • $black //입력
  • $회색//출력

그것이 분명하기를 바랍니다.

답변1

일반적으로 명령의 출력을 캡처하고 줄 앞에 색상 코드가 있는 echo 문으로 래핑해야 합니다. 작업이 끝나면 프롬프트가 정상적으로 보이도록 색상을 "일반" 모드로 되돌려야 합니다. 원하는 것을 달성하는 대략적인 방법은 다음과 같습니다.

$ echo -e '\e[1;30m'`pwd`; echo -en '\e[0m';

코드 \e[1;30m' is gray, the code\e[0m`은 디스플레이를 일반 모드로 되돌립니다.

따라서 이를 스크립트에 넣거나 별칭을 만들고 명령 이름을 매개변수로 가져와 echo ... ; echo위의 구성에 전달할 수 있습니다.

다음은 매우 기본적인 예이지만 Bash 셸에서 이를 수행하는 방법에 대한 아이디어를 제공하기 위한 것입니다.

$ c () { echo -e '\e[1;30m'`\$1`; echo -en '\e[0m'; }

그러면 이라는 함수가 생성됩니다 c. 다음과 같은 매개변수를 전달할 수 있습니다 pwd.

$ c pwd
/home/saml

그러나 주의해서 사용해야 합니다. 그런 것을 전달할 수는 없습니다 ls.

답변2

쉘은 실제로 색상과 아무 관련이 없으며 색상을 처리하는 터미널(에뮬레이터) 장치입니다. Linux에서는 이것이 표준화되어 있으며 거의 ​​모든 것(VT, xterms 등)이 응답합니다.ANSI 이스케이프 시퀀스. 지속 가능한 개발 관리대답은 기본적인 사용법을 보여줍니다.

파이프로 사용할 수 있는 것을 원한다면 콘솔 배경에서 여러 비동기 프로세스의 출력을 서로 다른 색상을 사용하여 멀티플렉싱하기 위해 작성한 C 유틸리티가 있습니다. 이는 서로 관련하여 디버깅하는 데 유용합니다. 그러나 독립적인 것 편리합니다.

http://cognitivedissonance.ca/cogware/utf8_colorize/utf8_colorize.tar.bz2

tarball에 README가 있습니다. 기본 예:

ls | utf8-colorize -1 3 -b

출력은 ls굵은 노란색으로 표시됩니다. 예를 들어 배경을 설정하는 것도 편리할 수 있습니다.

alias green='utf8-colorize -1 2'

관련 정보