설정
내 로컬 컴퓨터에서 screen을 실행하고 있으며 다른 화면 창을 사용하여 다른 호스트에 연결하고 있습니다. ssh 실행시 자동으로 창 이름을 호스트 이름으로 변경해주면 좋을 것 같습니다.
방법
다음 두 가지 방법의 다양한 변형을 시도했습니다.
1) LocalComand
SSH 구성 파일에서 사용:
Host *
PermitLocalCommand yes
LocalCommand '[ "${TERM:0:6}" == "screen" ] && printf "\ek@%h\e\\"
2) 사용자 정의 bash 함수를 만듭니다.
# function to set screen name based on host and reset on exit
function ssh() {
echo -e '\033k'@$1'\033\\'
/usr/bin/env ssh -Y "$@"
echo -e '\033k'local'\033\\'
}
질문
두 방법 모두 작동하지만 자동 완성과 같은 기능을 방해하는 것 같습니다.
$ scp user@host:~/.s<tab>
...o^[\\\\ ...cal^[\\\\
질문
$TERM == screen
호스트에 연결될 때만 실행 LocalCommand
(또는 기능)을 허용 ssh()
하고 자동 완성에 사용될 때는 허용하지 않도록 일부 조건( if 확인 외에)을 사용할 수 있습니까 ?