2016-09-13 5 views
0

내가 ssh'd 할 우분투 상자에서 로그 아웃 할 때 this lovely script을 사용하려고합니다. 수동으로 호출하면 색상이 정확합니다. 그러나 때마다이 .bash_logout 에서 실행되는 것, 모든 라인은 흰색과 컬러 코드로 시작이다 :printf 색상이 .bash_logout에서 작동하지 않습니다.

\x1B[38;5;160;01m .d8888b. 8888888888 8888888888  Y88b d88P .d88888b. 888  888 
\x1B[38;5;196;01m d88P Y88b 888  888    Y88b d88P d88P" "Y88b 888  888 
\x1B[38;5;202;01m "Y888b. 8888888 8888888   Y888P 888  888 888  888 
\x1B[38;5;208;01m  "Y88b. 888  888     888  888  888 888  888 
\x1B[38;5;214;01m  "888 888  888     888  888  888 888  888 
\x1B[38;5;220;01m Y88b d88P 888  888     888  Y88b. .d88P Y88b. .d88P 
\x1B[38;5;226;01m "Y8888P" 8888888888 8888888888   888  "Y88888P" "Y88888P" 

TERM는 VM 내 호스트 모두에서 의 xterm-256color으로 설정 (OS X 10.11) . 나는 echo -e을 사용해 보았지만, 모두 그랬던 것처럼 색 문자열 앞에 -e이 붙어있었습니다. 스크립트의 내용을 직접 에 추가하면 .bash_logout이 작동하지만, 지저분 해 보입니다. 생각?

+0

좋아, * .bash_logout *의 줄을'sh seeyou ... '에서'. 너를 보아라. "또는"소스가 너를 보았다. ... "고 고쳤다. 나는 모른다. – mattpolicastro

+0

답변으로 추가하고 다른 사람들에게 표시 할 수 있습니다. –

답변

0

POSIX 셸에서는 printf 명령에서 \xXX 이스케이프를 사용할 수 없습니다. 8 진수 표기법 만 사용할 수 있습니다. . 또는 source을 사용하면 POSIX 쉘을 사용하는 대신 현재 bash 프로세스로 스크립트를 실행합니다. bash seeyou도 효과가있었습니다. 파일 자체이기 때문에, 단지 .bash_logout POSIX 호환에서 실행되는 코드를 만들기 위해 어떤 특별한 이유가 없다, 물론

ESC_SEQ="\033[38;5;" 

: 스크립트의

는 POSIX 호환 버전은 첫 번째 줄에 변경 것 bash에 한정됩니다.

+0

아, 설명해 주셔서 감사합니다! – mattpolicastro

관련 문제