У меня есть скрипт, который просто убивает приложение,BASH - странные персонажи выходят из трубы
KEY_NAME=/some/path
kill `ps -ef | grep $KEY_NAME | grep -v grep | awk '{ print $2 }'`
exit 0
Если я пишу убить команду вручную, как Oneliner, чем он работает. Но я должен запустить его как скрипт, который не работает. Так что я пытался отладить и вот результат
[[email protected] logs]$ bash -x ./script.sh
+ KEY_NAME=/some/path
++ ps -ef
++ grep /some/path
++ grep -v grep
++ awk '{ print $2 }'
+ kill $'20557\r'
: arguments must be process or job IDs
+ exit 0
Почему я получаю эти странные символы на kill
линии? Как я могу избавиться от них?
Что произойдет, если вы добавите голову -1 в этот конвейер? – alberge
Вы пробовали 'killall'? Но если вы убиваете свою собственную программу, [вы можете захотеть пересмотреть] (http://mywiki.wooledge.org/ProcessManagement). – l0b0
@ l0b0 У меня нет, и я, вероятно, не буду. Я не хочу в конечном итоге убивать больше процессов, чем я должен был бы ... – user219882