터미널 반품에 다른 색상을 원합니다.
예:
$ 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'