Ответ 1
kill `ps ax | grep -i PATTERN | awk '{ print $1 }'`
Убьет весь ваш процесс, не зависящий от регистра, используя магический `
pgrep использует regex как стиль шаблона. Я пропускаю параметр -i grep, чтобы сообщить pgrep, что я ищу регистр без учета.
Альтернативой является
ps ax | grep -i PATTERN
Но тогда я должен использовать PID для отправки сигнала KILL. С компилятором pgrep и pkill я могу использовать тот же шаблон для убийства приложения.
Как я могу использовать regex REG_ICASE на лету на bash?
kill `ps ax | grep -i PATTERN | awk '{ print $1 }'`
Убьет весь ваш процесс, не зависящий от регистра, используя магический `
Если строка не слишком длинная:
pkill -f '[Pp][Aa][Tt][Ee][Rr][Nn]'
Со страницы руководства pgrep: man pgrep
в варианте i
-i Ignore case distinctions in both the process table and the
supplied pattern.
Итак, мы можем просто использовать опцию, которая i
нравится:
pgrep -fi 'PATTERN'
то есть:
pgrep -f 'chrome'
echo $?
1
Но в том числе опция -fi
работает:
pgrep -fi 'ChRoMe'
Выход:
> 872
910
41391
60087
60090
60092