ログイン後、シェルを変更しても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シェルが起動しなくなります。

関連情報