설정
로컬 컴퓨터에서 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
실행을 허용 하고 자동 완성에 사용될 때는 실행을 허용하지 않는 ( if 확인 외에) 사용할 수 있는 몇 가지 조건이 있습니까 ?LocalCommand
ssh()