当使用 -T 和 -t 运行相同的 ssh 命令时,任何 stderr 输出分别到达 stderr 和 stdout。
未分配 pty:
ssh -T user@host "echo >&2 foo" 1>/tmp/out 2>/tmp/err
输出写入/tmp/err
.
使用 pty 分配:ssh -t user@host "echo >&2 foo" 1>/tmp/out 2>/tmp/err
输出现在写入/tmp/out
.
我有点理解,使用 pty 模拟了一个完整的伪屏幕,并且输出处于原始模式。发送到屏幕的输出然后通过 stdout 发送回 ssh,并且 ssh 的 tty 也设置为原始模式。有人可以进一步解释吗?