只有一个关于grep命令行的基本问题。通过使用以下命令行,我找到了如何知道服务正在运行的方法:
ps -ef |grep -v grep | grep mongodb我对第二个grep感到困惑:
|grep -v grep |为什么我需要在“-v”之后使用"grep“?
这个命令和这个命令有什么不同?
ps -ef |grep mongodb谢谢!
发布于 2017-03-09 19:03:14
当你通过命令行grep "mongodb“时,你的命令也包含了"mongodb”这个词,所以你会得到两个结果,这是有缺陷的结果。grep -v是删除用户输入的grep命令。
sh-4.1$ ps -ef |grep -v grep | grep mongodb
ps 17308 30074 0 06:05 pts/300 00:00:00 sh mongodbvs
sh-4.1$ ps -ef |grep mongodb
ps 17308 30074 0 06:05 pts/300 00:00:00 sh mongodb
ps 17456 30074 0 06:05 pts/300 00:00:00 grep mongodb #<<<This also contains mongodb word. Hence result is flawed. 发布于 2017-03-09 19:06:18
-v选项告诉grep不要让任何与模式匹配的内容通过,在本例中是包含字符串"grep“的行。因此,如果省略了grep -v grep,grep进程本身也会显示在输出中管道中第二个命令之后(以及第三个命令之后,因为grep进程本身包含单词"mongodb")。
https://stackoverflow.com/questions/42693627
复制相似问题