ps aux | grep config vs ps aux | grep "confi "

Я хотел бы знать, почему ps aux | grep ps aux | grep включает команду grep на выходе, но ps aux | grep "confi[g]" ps aux | grep "confi[g]" нет.

 $ ps aux | grep config root 50 0.0 0.0 2548368 5760 ?? Ss 14Sep16 0:29.27 /usr/libexec/configd emesa 20534 0.0 0.0 2434840 796 s002 S+ 4:41PM 0:00.00 grep config 

против

 $ ps aux | grep "confi[g]" root 15776 0.0 0.0 2519824 940 ?? Ss Tue11AM 0:00.08 /System/Library/PrivateFrameworks/SystemAdministration.framework/XPCServices/writeconfig.xpc/Contents/MacOS/writeconfig root 50 0.0 0.0 2547320 5740 ?? Ss 14Sep16 0:29.27 /usr/libexec/configd 

Поскольку команда grep "confi[g]" ищет строку «config», а во втором случае команда grep "confi[g]" не содержит строку «config» . Он содержит строку «confi [g]» .

Это обычно используемый grep-трюк, чтобы избежать печати команды grep-команды при поиске в выводе ps .