退出 ssh -tt 会话

Ale*_*lex 2 linux ssh bash terminal tty

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

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

注意伪 tty-tt开关。

我的问题是脚本运行完毕后,ssh 会话并未结束。打字exit也没有任何作用。我如何让它退出?

Att*_*tie 5

你缺少一个exit声明。

我怀疑这exit是必要的原因是因为当您强制分配 pty 时,该 pty 期望输入是终端...EOF从终端读取并不意味着 '永远不会有更多的数据来' 它对管道/文件的处理方式 - 它只是意味着'当前没有来自用户更多输入' - 因此挂起......它正在等待进一步的输入。

此输入脚本 ( myscript.sh) '挂起':

echo "Hello World..."
Run Code Online (Sandbox Code Playgroud)

这不会:

echo "Hello World..."
exit 0
Run Code Online (Sandbox Code Playgroud)