>我正在远程 ssh 主机上执行脚本,如下所示:
ssh -tt $USER@somehost 'bash -s' < ./myscript.sh
请注意伪 tty -tt
开关。
我的问题是脚本运行完成后,ssh 会话没有结束。 键入exit
也不起作用。 如何使其退出?
您缺少exit
语句。
我怀疑exit
是必要的原因是,当您强制分配 pty 时,pty 期望输入是终端......从终端读取EOF
并不意味着">永远不会有更多的数据",就像它对管道/文件所做的那样 - 它只是意味着">当前没有更多的用户输入" - 因此挂起...它正在等待进一步的输入。
此输入脚本 ( myscript.sh
( "挂起":
echo "Hello World..."
这不会:
echo "Hello World..."
exit 0
在没有进一步信息的情况下,以下脚本在执行后会正确退出,即使像问题中一样执行也是如此。如果这不起作用,请提供一个它不起作用的示例。
echo Hello World
pwd
exit