linux命令ps -ef | grep [W]DA
和ps -ef | grep WDA
??
答案 0 :(得分:-1)
不同之处在于,对于后者,作为结果之一,您会在grep WDA
的结果中获得ps
。如果您添加方括号,则grep
在[W]DA
的结果输出中找不到ps -ef
,因为其名称中没有包含方括号的此类进程。
为了说明它是如何工作的(为了更快地获得结果,我在我的控制台上使用了sshd
而不是WDA
):
ps -ef | grep sshd
root 1046 1 0 06:36 ? 00:00:00 /usr/sbin/sshd -D
rogus 2321 1189 0 07:30 pts/0 00:00:00 grep --color=auto sshd
ps -ef | grep [s]shd
root 1046 1 0 06:36 ? 00:00:00 /usr/sbin/sshd -D
方括号的位置是任意的,只要它只有一个字符,你选择哪个字符并不重要(如果你使用[WD]A
然后grep
会寻找WA
或DA
)
主要用途是分析输出并消除不需要的管道grep。如果您使用它,例如在for
循环中并分析包含不同流程实例的数据的每一行,然后grep WDA
将在循环中使用,这很可能不是预期的。