我正在远程 ssh 主机上执行如下脚本:
ssh -tt $USER@somehost 'bash -s' < ./myscript.sh
注意伪终端 -tt
开关。
我的问题是脚本运行完毕后 ssh session 没有结束。打字exit
也不做任何事情。如何让它退出?
最佳答案
您缺少 exit
语句。
我怀疑 exit
是必要的原因是因为当你强制分配一个 pty 时,pty 期望输入是一个终端......阅读 EOF
来自终端并不意味着“永远不会有更多的数据来”,就像它对管道/文件所做的那样——它只是意味着“目前没有更多的数据”来自用户的输入' - 因此挂起......它正在等待进一步的输入。
此输入脚本 (myscript.sh
)“挂起”:
echo "Hello World..."
这不是:
echo "Hello World..."
exit 0
关于linux - 退出 ssh -tt session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42959153/