我有一个使用串行线与用户交互的设备,它接受输入并打印跟踪作为返回。然而,这些痕迹非常冗长,大部分时间我都是通过另一个运行命令的终端来观察它们
tail -f serial.log | grep <myfilter>
但是,当我需要输入数据时,我必须切换回正在读取(和记录)来自设备的串行输出的终端。
有没有办法在同一个终端上做到这一点?我想输入我的“grepped”终端,让这些字符到达设备。
最佳答案
您可以在后台运行您的 tail
命令:
{ tail --pid=$! -f serial.log | grep <myfilter>; } &
这将跟踪日志并将匹配项打印到您的终端,但您仍然可以像往常一样输入命令(要返回 PS1 提示符,请按回车键)。要停止命令,只需运行:
kill -9 $!
只要您还没有启动任何其他后台任务!如果您有其他后台任务要运行,您可以在启动 tail
命令后立即存储 $!
的值,稍后使用它来终止它。
关于linux - 如何重定向在运行 'tail -f' 和 'grep' 的终端中键入的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541188/