Answers:
使用ssh -t ...
强制伪终端分配(也就是当你通过SSH正常登录你会得到什么。)
-tt
-的Magnus注释,该注释对-t有用,而对-t无效。
为了进一步解释Ryan Fox的答案:许多程序(大多数是-是所有C程序的默认设置)在与终端通信时使用行缓冲stdout,但否则将其完全缓冲。(C标准指定“可以确定不引用交互式设备”时,stdout最初将完全缓冲。)
因此,您看到的是远程运行的程序的输出(如stdout所示)没有行缓冲。ssh只是在获得它时传递它所获得的东西。(我认为ssh实际上在其输出上根本没有缓冲-这是确保用户看到远程程序意图的最不可思议的方法。)