Pourquoi les crochets d'un grepmodèle suppriment-ils le processus grep des psrésultats?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Pourquoi les crochets d'un grepmodèle suppriment-ils le processus grep des psrésultats?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Réponses:
Lorsque vous exécutez ps -ef | grep string, grep s'affiche dans la sortie car stringcorrespond [...] grep string.
Mais, lorsque vous exécutez ps -ef | grep [s]tringla ligne ne s'affiche pas, car grep se traduit [s]tringpar string, tandis que ps génère [...] grep [s]tring, et cela ne correspond passtring
[]représente l'un des jeux de caractères entre parenthèses dont, dans ce cas, "s" est le seul ...
Parce que les crochets doivent être échappés, pour bash une fois et pour grep à nouveau:
$ ps -ef | grep \\[X\\]XXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep "\[X\]XXX"
[...] XXXX
[...] grep XXXX