![同时运行两个监视命令](https://linux22.com/image/1318203/%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C%E4%B8%A4%E4%B8%AA%E7%9B%91%E8%A7%86%E5%91%BD%E4%BB%A4.png)
我想通过输入一行代码或运行 shell 脚本在前台运行两个可执行文件。这些可执行文件监视目录并重新编译一些代码,同时将其状态输出到 stdout。
我希望 stdout 以与“tail”中以下两个文件相同的方式呈现,如下所示:
tail -f foo.txt -f bar.txt
==> foo.txt <==
Something
==> bar.txt <==
Something else
当发生更改时,它会在打印输出之前打印文件名。只有当需要指示输出来自其他文件时,它才会打印文件名。
答案1
由于这两个可执行文件都写入标准输出,您可能只需要tail
进程替换生成的文件:
tail -f <( executable_one ) <( executable_two )
(-f
顺便说一下,只需要一个。这是一个全局选项,而不是需要为每个文件指定的东西。)
两个可执行文件分别运行,其输出被捕获并重定向到传递的文件句柄tail
。在输出中,文件名将显示为“/dev/fd/63”之类的内容。不幸的是,我不知道如何让 tail 使用备用名称(例如使用grep
和--label
选项)。
答案2
请参阅这篇 Geek Stuff 文章:“在一个终端中查看多个日志文件 tail -f 输出的 3 种方法“。