Dlaczego nawiasy we grepwzorcu usuwają proces grep z pswyników?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Dlaczego nawiasy we grepwzorcu usuwają proces grep z pswyników?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Odpowiedzi:
Po uruchomieniu ps -ef | grep stringgrep jest wyświetlany na wyjściu, ponieważ stringpasuje [...] grep string.
Ale po uruchomieniu ps -ef | grep [s]tringlinii nie jest wyświetlany, ponieważ grep przekłada [s]tringsię string, natomiast wyjścia ps [...] grep [s]tring, i że nie pasujestring
[]reprezentuje dowolny zestaw znaków w nawiasach, w tym przypadku „s” jest jedynym…
Ponieważ nawiasy klamrowe muszą być poprzedzone znakiem ucieczki, dla bash raz i dla grep:
$ ps -ef | grep \\[X\\]XXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep "\[X\]XXX"
[...] XXXX
[...] grep XXXX