我正在尝试通过 ssh 连接到服务器,然后执行命令。到目前为止就这么简单。
不同的是,在该服务器上,我从 bash 启动 zsh。所以在我的 .bashrc 中我有命令:
exec /bin/zsh -l
这样当我登录时,它会自动启动我的 z-shell。我想保持这样。
不幸的是,当我运行 bash 脚本来连接到服务器并运行命令时,它不起作用。没有错误消息,命令只是无限地运行。
尽管外壳发生了变化,有没有办法做到这一点?
谢谢!
答案1
我找到了解决方案。
在.bashrc中,检查shell是否处于交互模式。如果是,则打开 z shell。
if [[ $- == *i* ]]
then
exec /bin/zsh -l
fi
这样,如果您执行连接到服务器并执行命令的 bash 脚本,z shell 将不会启动。