터미널 제목에 현재 TTY/PTY 표시

터미널 제목에 현재 TTY/PTY 표시

내 파일을 사용자 정의하여 현재 TTY 세션을 현재 터미널 창 제목 표시줄에 표시하는 방법을 알아내려고 노력하고 있지만 .bashrc작동하는 데 약간의 문제가 있는 것 같습니다.

나는 이것을 하려고 노력한다.

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a | $(tty | cut -d/ -f3,4)\]$PS1"

하지만 이렇게 하면 예상한 결과가 나오지 않습니다. 대신에 그것은 마치;

| pts/0user@hostname ~$

이와 같이 제목 표시줄 대신 열린 터미널 화면에서;

user@host ~ | pty/0

.bashrc파일에는 다음과 같습니다.

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a | $(tty | cut -d/ -f3,4)\]$PS1"
    ;;
*)
    ;;
esac
  • -

이것으로 해결되었습니다.

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w | $(tty | cut -d/ -f3,4)\a\]$PS1"

게시물에서 이 점을 지적한 @Gilles에게 감사드립니다. 덕분에 수행해야 할 작업이 더 명확해졌습니다.

답변1

창 제목을 설정하려면 다음을 실행하십시오.이스케이프 시퀀스 \e]2;TITLE\a여기서 \e\a는 각각 이스케이프 문자와 벨 문자입니다. bash 프롬프트 내에서 이 작업을 수행하므로 \[…\]터미널 내에서 출력이 생성되지 않음을 bash에 알리기 위해 이스케이프 시퀀스가 ​​그 안에 있어야 합니다 .

당신은 그것을 사용할 수 있습니다매개변수 확장접두사를 자르고 변경되지 않으므로 한 번만 호출하십시오 /dev/.tty

TTY=$(tty)
PS1="\\[\\e[2;${TTY#/dev/}\\a\\]$PS1"

관련 정보