grep – почему скобки в шаблоне grep удаляют процесс grep из результатов ps?

Почему скобки в шаблоне grep удаляют процесс grep из результатов ps ?

 $ ps -ef | grep XXXX [...] XXXX [...] grep XXXX $ ps -ef | grep [X]XXX [...] XXXX 

3 Solutions collect form web for “grep – почему скобки в шаблоне grep удаляют процесс grep из результатов ps?”

Когда вы запускаете ps -ef | grep string ps -ef | grep string , grep отображается на выходе, потому что string соответствует [...] grep string .

Но когда вы запускаете ps -ef | grep [s]tring ps -ef | grep [s]tring строка не отображается, потому что grep переводит [s]tring в string , а ps выводит [...] grep [s]tring и не соответствует string

Поскольку скобки должны быть экранированы, для bash один раз и для grep снова:

 $ ps -ef | grep \\[X\\]XXX [...] XXXX [...] grep XXXX $ ps -ef | grep "\[X\]XXX" [...] XXXX [...] grep XXXX 

Несмотря на то, что ответ на это заключается в « сопоставлении шаблонов классов grep »; Я не мог понять, как это переводится, чтобы не показывать скобки в результатах в манекене. Итак, вот верная причина, которая работает для меня:

Это потому, что ввод команды как
(1) ps -eaf | grep [b]aka
будет выполняться программой оболочки внутри, расширяя регулярное выражение и, таким образом, эквивалентно запуску следующего
(2) ps -eaf | grep "aka\|baka"

Теперь, потому что команда ввода (1) содержит символы квадратной скобки «[]» (буквально – не так называемые регулярные выражения), но выполненная команда (2) не ищет этого, следовательно (1) не отображается в результаты строк, содержащих « aka » | « бака ».

Подумайте, прежде чем вы уменьшите этот фасад ответа minasama

  • При каких обстоятельствах pgrep -x не может вернуть действительный pid?
  • Нужен скрипт для уничтожения процесса python с низким потреблением процессора
  • Подсчитайте общее количество подпроцессов (рекурсивно), порожденных командой
  • Получение переходного PID из входа в поиск PS до его смерти
  • Как подсчитать количество запусков оболочки / терминалов?
  • Где найти исходный код для ps?
  • Как убедиться, что встроенное эхо-сообщение оболочки вызвано так, что оно не отображается в списке процессов?
  • Получает ли этот диспетчер процесс зомби?
  • Вывести как ps, так и Date в одной строке, в файл?
  • Команда «ps» не возвращает запрос
  • команда «ps» зависает
  • Linux и Unix - лучшая ОС в мире.