有没有办法在两个不同的 bash 终端上同时运行两个不同的命令/指令?

Ris*_* K. 1 linux bash stdout stderr

这是一个示例示例 -

1号航站楼

$ ./file_name1.sh
Run Code Online (Sandbox Code Playgroud)

2号航站楼

$ ./file_name2.sh
Run Code Online (Sandbox Code Playgroud)

更具体地说,我想要的是,从一个程序同时stdout在一个终端和stderr另一个终端上打印。

可以使用终端terminator或任何其他终端来完成吗?

tri*_*eee 5

终端作为设备公开。如果你有终端 1/dev/tty/1和终端 2,/dev/tty/2你可以运行

 ./file_name_1.sh >/dev/tty/1 2>/dev/tty/2
Run Code Online (Sandbox Code Playgroud)

使其标准输出显示在终端 1 中,标准输出显示在终端 2 中。当然,如果您有其他任何东西,例如交互式 shell,在其中一个终端中,您就会把自己弄得一团糟。可能更好的解决方案是登录到一个文件,然后tail在您认为合适的每个终端中运行您想要查看的文件。

./file_name_1.sh >stdout.log 2>stderr.log
Run Code Online (Sandbox Code Playgroud)

然后在终端 1

tail -f stdout.log
Run Code Online (Sandbox Code Playgroud)

在 2 号航站楼

tail -f stderr.log
Run Code Online (Sandbox Code Playgroud)

tty命令可以交互显示当前终端的信息;在大多数平台上,您还可以在ps输出中看到终端信息,但究竟要使用哪些选项取决于您使用的操作系统。通常在 Linux 上,尝试ps a开始。