我正在尝试检查特定服务是否正在通过 Linux 终端运行,并且以下命令似乎没有按预期过滤结果。不知道我做错了什么......
service --status-all | grep subversion
这会产生多行输出,例如,包括
[ ? ] Networking
我不确定为什么会发生这种情况,因为字符串“subversion”不包含在上面的行中...
最佳答案
您应该使用:
service --status-all |& grep subversion
因为没有状态 ([ ? ]
) 的服务被发送到 stderr,它不会通过管道传输到 grep(然后无论如何都会打印在您的终端上)。
|&
将 stderr 发送到 stdout,以便 grep 能够过滤它。
关于linux - 通过管道发送到 Grep 会给出太多结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34064431/