我偶然发现了一个名为 wc 的程序,它可以打印文件中的字节数、字数和行数。现在我打算使用它来确定某个进程是否真的在我的计算机上运行。如果是,它应该打印正在运行的进程中的字节数。否则它应该打印 0。但我可以使用一个虚构的进程,它仍然会打印字节数:
$ ps -ef | grep dfdsfdf | wc -c
74
那 74 是从哪里来的?
答案1
好的
首先
ps -ef
将列出系统上的每个进程
然后你通过管道传输结果并搜索字符串“dfdsfdf”
除非命令 grep,否则输出将为空
hadi 28052 27027 0 08:54 pts/0 00:00:00 grep --color=auto dfdsfdf
现在您将此输出传递给管道,然后计算此输出的章程,从而获得 74。
要检查某些内容,请从字符串“dfdsfdf”中删除一个字符,然后计数变为 73。
看:
ps -ef | grep dfdsfd | wc -c
73
感谢@steeldriver 的评论。
值得补充的是,可以通过用正则表达式替换文字搜索字符串来“欺骗” grep 使其不匹配自己的输出
ps -ef | grep [d]fdsfdf | wc -c
这将返回 0