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