![로그인 후 쉘을 변경해도 ssh에 연결하고 명령을 실행합니다.](https://linux55.com/image/168311/%EB%A1%9C%EA%B7%B8%EC%9D%B8%20%ED%9B%84%20%EC%89%98%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%B4%EB%8F%84%20ssh%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%98%EA%B3%A0%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A9%EB%8B%88%EB%8B%A4..png)
SSH를 통해 서버에 연결한 다음 명령을 실행하려고 합니다. 그게 지금까지입니다.
차이점은 이 서버에서는 bash에서 zsh를 시작한다는 것입니다. 그래서 내 .bashrc에는 다음 명령이 있습니다.
exec /bin/zsh -l
이렇게 하면 로그인하면 자동으로 z-shell이 시작됩니다. 나는 그것을 그대로 유지하고 싶다.
불행히도 bash 스크립트를 실행하여 서버에 연결하고 명령을 실행하면 작동하지 않습니다. 오류 메시지가 없으며 명령이 무한히 실행됩니다.
쉘 변경에도 불구하고 이를 수행할 수 있는 방법이 있습니까?
감사해요!
답변1
해결책을 찾았습니다.
.bashrc에서 셸이 대화형 모드인지 확인하세요. 그렇다면 z 쉘을여십시오.
if [[ $- == *i* ]]
then
exec /bin/zsh -l
fi
이렇게 하면 서버에 연결하고 명령을 실행하는 bash 스크립트를 실행하면 z 쉘이 시작되지 않습니다.