.tcshrc에서 터미널 제목을 설정한 후 less 명령이 작동을 멈춥니다.

.tcshrc에서 터미널 제목을 설정한 후 less 명령이 작동을 멈춥니다.

광산에 다음 명령을 추가했습니다 ~/.tcshrc.

echo "\033]0;${PROJECT_NAME}\007"

less새로 열린 명령이 gnome-terminal제대로 작동하지 않았습니다. 그러나 more명령은 영향을 받지 않습니다.

less명령을 실행하려고 하면 다음과 같은 내용이 표시됩니다 .

less log

ESC]0;MYPROJ^G
log (END) 

답변1

파이프 또는 유사한 스크립트를 통해 출력을 파이프 less하도록 구성할 수 있습니다 . 환경 변수 및/또는 해당 설정 lesspipe이 파일에 사용된 경우 이러한 현상이 발생할 수 있습니다 . 출력이 파이프 데이터와 혼합되어 혼란을 야기합니다.LESSOPENLESSCLOSE~/.lesskey~/.tcshrc

~/.tcshrcTTY 없이 쉘에 대해 실행될 때 추가한 명령을 실행하고 있는 것 같습니다 . 이로 인해 발생한 문제가 발생하고 다른 많은 명령에 문제가 발생할 수도 scp있습니다 rsync.화면 출력을 생성하는 명령을 사용자 또는 유사한 쉘 시작 스크립트에 추가하는 경우 .tcshrc명령이 대화형으로 및/또는 TTY가 있는 세션에서만 실행되도록 항상 명령을 조건부로 만들어야 합니다.

이 문제를 해결하는 가장 쉬운 방법은 출력을 다음 ~/.tcshrc으로 제한하는 것입니다.인터렉티브쉘 세션에만 해당됩니다. 쉘 프롬프트가 표시됩니다. 출력을 조건부로 만들어 이를 수행할 수 있습니다. 즉, 추가한 한 줄을 다음 .tcshrc으로 바꾸면 됩니다.

if ($?prompt) then
    echo "\033]0;${PROJECT_NAME}\007"
fi

사용자 정의 프롬프트를 설정하기 전에 이를 추가하세요.

또 다른 접근 방식은 먼저 TTY의 유효성을 자동으로 테스트하는 것입니다.

tty -s && echo "\033]0;${PROJECT_NAME}\007"

관련 정보