0
在我的makefile我有一個命令如何通過awk殺死進程?
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
ID。 我該如何解決它?
您可以使用:'的ps aux | awk'/ [p] rocess_name/&& $ 11〜/ special_mask/{print $ 2}'| xargs殺死' – anubhava
@anubhava它沒有幫助。也許有一種方法來檢查選擇返回不空字符串? – Jens
@Jens:在'xargs'中使用'-r'標誌('GNU' specific not in'POSIX'),這意味着只有在管道之前的命令產生輸出字符串(stdout)_after_'xargs'運行命令(在你的情況下「殺死」)。 '.. | xargs -r殺死'。這樣,如果沒有找到該進程,控制檯上就不會出現錯誤(命令'kill'不運行) – Inian