ssh remotehost "remote_command" | more
这将remote_command
在 上执行remotehost
,并对 的输出进行分页remote_command
。如果用户不愿意滚动浏览所有页面,他可以q
在--MORE--
提示符下按 。不幸的是,这不会停止 ssh 进程(和远程命令)。用户必须按^C
才能真正终止进程。当用户按下q
more 时,终止并且 ssh 收到 SIGPIPE 但继续,因为remote_command
没有完成执行。当用户退出寻呼机时,有什么方法可以终止 ssh 和远程执行?我不希望用户按 ^C,因为如果正在对本地文件进行 cat 操作,他就不需要这样做(事实上,他不知道这个命令是通过 ssh 隧道远程执行的)。
答案1
为什么不直接将命令更改为在远程服务器上调用更多命令?此外,您还必须强制使用 pty,正如 wfaulk 提到的那样。假设它是另一个 unix 系统,这应该没问题。即
ssh -t 名称@系统 “命令|更多”
仅供参考,少即是多:)
答案2
-t
我还没有测试过这个,但是尝试通过将' '标志传递给来从远程机器获取 pty ssh
。