![这个测试表达式[]是什么意思?](https://linux22.com/image/32823/%E8%BF%99%E4%B8%AA%E6%B5%8B%E8%AF%95%E8%A1%A8%E8%BE%BE%E5%BC%8F%5B%5D%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%9F%20.png)
我见过有人使用命令:
ps-ef | grep [h]ttpd
输出是:
阿帕奇 25125 31006 0 21:54 ? 00:00:00 /usr/sbin/httpd 阿帕奇 26869 31006 0 22:04 ? 00:00:00 /usr/sbin/httpd 阿帕奇 27349 31006 0 22:07 ? 00:00:00 /usr/sbin/httpd 阿帕奇 27696 31006 0 22:09 ? 00:00:00 /usr/sbin/httpd 阿帕奇 28534 31006 0 22:14 ? 00:00:00 /usr/sbin/httpd 根 31006 1 0 16:16 ? 00:00:00 /usr/sbin/httpd 阿帕奇 31011 31006 0 16:16 ? 00:00:00 /usr/sbin/httpd
2 括号里的字母“h”在哪里grep
做什么?
答案1
grep
这是防止命令本身出现在输出中的技巧ps
。
[...]
是一个字符类规范,即[ab2]
完全匹配必须是a
,b
或 的一个字符2
。[h]
仅完全匹配h
。
诀窍在于[h]ttp
匹配http
,但它不匹配本身。