将 stderr 重定向到第二个终端 / tty

ELL*_*BLE 2 terminal shell terminal.app stdout

我尝试过rse将标准输出和标准错误流与程序区分开来;但我真的很喜欢在单独的终端中查看两者的选项,而无需重定向到文件并拖尾它或其他东西(假设任一流都可以打印 ANSI 终端控制代码。)

有没有办法在新终端或类似的东西中打开现有进程的标准错误?

egm*_*ont 6

打开两个终端。在第二个中,通过运行tty命令找出它的 tty 设备。它会打印类似/dev/pts/8.

在第一个中,运行您的应用程序,将其 stderr 重定向到此处,例如myapp 2>/dev/pts/8.

我经常使用它进行调试,因此我将终端标题设置为包含 tty 编号,因此我什至不必运行该tty命令。我在 shell 提示符下执行此操作,将更改标题的转义序列与 bash 的\l(这是小写的 L)结合起来作为 tty 行号,即PS1=$'\\[\e]0;\l\a\\] ...'

我经常cat在启动实际应用程序之前在第二个终端中执行 a ,以防万一我不小心在那里输入了一些无害的东西,并使光标转到第一列。但这不是强制性的。