Как я могу искать регистр без регистра в pgrep?

pgrep использует regex как стиль шаблона. Я пропускаю параметр -i grep, чтобы сообщить pgrep, что я ищу регистр без учета.

Альтернативой является

ps ax | grep -i PATTERN

Но тогда я должен использовать PID для отправки сигнала KILL. С компилятором pgrep и pkill я могу использовать тот же шаблон для убийства приложения.

Как я могу использовать regex REG_ICASE на лету на bash?

Ответ 1

kill `ps ax | grep -i PATTERN | awk '{ print $1 }'`

Убьет весь ваш процесс, не зависящий от регистра, используя магический `

Ответ 2

Если строка не слишком длинная:

pkill -f '[Pp][Aa][Tt][Ee][Rr][Nn]'

Ответ 3

Со страницы руководства 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