내 gnome 터미널이 제목 표시줄에 현재 사용자와 호스트를 표시하고 SSH를 사용할 때 원격 사용자와 호스트를 표시하기를 원합니다.
이를 위해 나는 내 스크립트 보다 먼저 스크립트를 만들었 ~/bin/ssh
습니다 .~/bin
PATH
/usr/bin
#!/bin/bash
echo -ne "\033]0;${1}\007"
/usr/bin/ssh $@
이것은 꽤 잘 작동합니다(예상치 못한 매개변수 순서에 대해서는 견고하지 않습니다). SSH 세션을 종료한 후에도 창 제목이 멋지게 복원됩니다.
내 문제는 내가 사용하려고 하는 다른 프로그램이 ssh
이 빌드에 의해 방해를 받는다는 것 입니다 stdout
. git fetch
예를 들어, 구토 \033]0;
.
ssh
내 질문은: 스크립트의 이름을 유지 하면서 stdout
관련된 곳에만 제공하도록 스크립트를 어떻게 개선할 수 있습니까 ?
창 제목을 변경해야 하는지 알려주는 일종의 변수가 있어야 합니까? TERM
via 를 실행할 때 여전히 정의되어 있으므로 git
작동하지 않을 것 같습니다 .
문자열을 다른 스트림으로 보낼 수 있나요?
옵션을 구문 분석하고 특정 조건에서는 출력하지 않아야 합니까 ssh
?stdout
답변1
표준 출력이 tty에 연결되는지 스크립트에서 확인하기를 원합니다.
이 stackoverflow 질문을 참조하세요.Bash에서 isatty를 확인하세요.
#!/bin/bash
# set the terminal title, if I'm running in a terminal
if [[ -t 1 ]]; then echo -ne "\033]0;${1}\007"; fi
/usr/bin/ssh "$@"
항상 인용해야 한다는 점에 유의하세요."$@"