В моем makefile у меня есть команда
kill `ps aux | awk '/process_name/' | awk '$11 ~ /special_mask/ {print $2}'`
Через терминал работает, но при попытке вызвать через команду make my-command
возвращает
kill `ps aux | awk '/process_name/' | awk '1 ~ /special_mask/ {print }'`
и он не может выполнить kill
без идентификатора процесса. Как я могу это исправить?
ps aux | awk '/[p]rocess_name/ && $11 ~ /special_mask/{print $2}' | xargs kill
- person anubhava   schedule 11.09.2017-r
вxargs
(GNU
не относится кPOSIX
), что означает, что только если команды перед конвейером создают выходную строку (stdout), команда послеxargs
запускается (kill
в вашем случае )... | xargs -r kill
. Таким образом, если процесс не найден, в консоли не видно ошибок (командаkill
не выполняется) - person Inian   schedule 11.09.2017my-command: ps aux | awk '/[s]ocket-ws.php/ && $11 ~ /php/{print $2}' | xargs -r kill
. Так что я мог бы вызвать эту команду, используяmake my-command
- person Jens   schedule 11.09.2017$$
, используйте:ps aux | awk '/[p]rocess_name/ && $$11 ~ /special_mask/{print $$2}' | xargs -r kill
- person anubhava   schedule 11.09.2017