退出ssh -tt会话

时间:2017-03-22 17:49:00

标签: linux bash ssh terminal tty

我正在远程ssh主机上执行脚本,如下所示:

ssh -tt $USER@somehost 'bash -s' < ./myscript.sh

注意伪tty -tt开关。

我的问题是脚本运行完毕后ssh会话没有结束。键入exit也没有做任何事情。如何让它退出?

2 个答案:

答案 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