想象一下,我有一个产生大量输出和返回码的命令,我需要在循环中频繁地(例如每分钟)运行它。
是否可以将命令的输出发送到不同的 tmux 窗格?然后我可以拆分当前窗格并在其中一个窗格中查看长输出(可滚动)和一个列表,例如10:00 - Returned 7 \n 10:01 - Returned 5 \n 10:03 - Returned 9在当前窗格中。
到目前为止,我只找到了在不同的 tmux 窗格中执行命令的方法,这不是我需要的。我只需要一种方法将命令的输出通过管道传输到另一个窗格,然后再显示它。
在@Kamil Maciorowski 的帮助下,我想通了:
要学习的主要内容是:我可以通过管道连接到另一个 tty;我在那里管的任何东西,都会出现在那里。
使用我的 Cygwin,我必须调整这个答案,因为管道到
fd
shell 的进程只会给我错误;相反,我必须查看fd
符号链接实际指向的位置——管道没有问题。获取 shell 的 PID:
看看它的
fd
点在哪里:从生成的字符串中
lrwxrwxrwx 1 ... ... ... ... /proc/<PID>/fd/1 -> /dev/pty4
取出最后一点,您就知道管道到哪里。放在一起:
这个别名告诉了在当前窗格中有输出的管道路径:
更新/扩展:使用 bash 时,可以通过添加(源
pty2
)在提示符中显示当前 shell(例如)。\l