为什么加上方括号 []?
-
避免
grep自身被匹配:- 当你运行
ps aux | grep 'rcs_main_yw.py'时,会列出包含字符串rcs_main_yw.py的所有进程信息,包括grep命令自身的信息。 - 例如:
$ ps aux | grep 'rcs_main_yw.py' user 12345 0.0 0.1 123456 1234 pts/0 S+ 12:34 0:00 grep rcs_main_yw.py user 67890 0.1 0.2 654321 4321 pts/1 S+ 12:34 0:01 python rcs_main_yw.py
bash复制代码
在上面的输出中,第一行是$ ps aux | grep 'rcs_main_yw.py' user 12345 0.0 0.1 123456 1234 pts/0 S+ 12:34 0:00 grep rcs_main_yw.py user 67890 0.1 0.2 654321 4321 pts/1 S+ 12:34 0:01 python rcs_main_yw.pygrep rcs_main_yw.py命令本身的输出,第二行才是实际运行的rcs_main_yw.py进程。
- 当你运行
-
使用方括号
[]的作用:- 方括号
[]是一种正则表达式的语法,用来创建一个字符类。在这个字符类中,单独的一个字符可以匹配该字符本身,而不是匹配一个字符类中的任意字符。 - 因此,
[r]cs_main_yw.py匹配的是包含rcs_main_yw.py的进程,但不匹配grep rcs_main_yw.py,因为它包含了grep字符。
- 方括号
示例说明
如果不使用方括号,直接使用 ps aux | grep 'rcs_main_yw.py' | wc -l,输出中将包含 grep rcs_main_yw.py,这可能会干扰你想要统计的实际进程数目。
总结
使用方括号 [] 的方法是一种常见的技巧,用来避免 grep 命令本身被 grep 出来,从而得到更准确的进程统计结果。
3411

被折叠的 条评论
为什么被折叠?



