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或任何其他终端来完成吗?
终端作为设备公开。如果你有终端 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开始。
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |