로그인 후 쉘을 변경해도 ssh에 연결하고 명령을 실행합니다.

로그인 후 쉘을 변경해도 ssh에 연결하고 명령을 실행합니다.

SSH를 통해 서버에 연결한 다음 명령을 실행하려고 합니다. 그게 지금까지입니다.

차이점은 이 서버에서는 bash에서 zsh를 시작한다는 것입니다. 그래서 내 .bashrc에는 다음 명령이 있습니다.

exec /bin/zsh -l

이렇게 하면 로그인하면 자동으로 z-shell이 ​​시작됩니다. 나는 그것을 그대로 유지하고 싶다.

불행히도 bash 스크립트를 실행하여 서버에 연결하고 명령을 실행하면 작동하지 않습니다. 오류 메시지가 없으며 명령이 무한히 실행됩니다.

쉘 변경에도 불구하고 이를 수행할 수 있는 방법이 있습니까?

감사해요!

답변1

해결책을 찾았습니다.

.bashrc에서 셸이 대화형 모드인지 확인하세요. 그렇다면 z 쉘을여십시오.

if [[ $- == *i* ]]
then
    exec /bin/zsh -l
fi

이렇게 하면 서버에 연결하고 명령을 실행하는 bash 스크립트를 실행하면 z 쉘이 시작되지 않습니다.

관련 정보