【发布时间】:2012-04-03 08:58:13
【问题描述】:
我有这个脚本可以简单地杀死一个应用程序
KEY_NAME=/some/path
kill `ps -ef | grep $KEY_NAME | grep -v grep | awk '{ print $2 }'`
exit 0
如果我手动将 kill 命令编写为 oneliner,它就会起作用。但是我必须将它作为不起作用的脚本运行。所以我尝试调试它,这是结果
[user@server 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 行上看到那些奇怪的字符?我怎样才能摆脱它们?
【问题讨论】:
-
如果将 head -1 添加到该管道会发生什么?
-
你试过
killall吗?但是,如果您要杀死自己的程序,you might want to reconsider。 -
@l0b0 我没有,我可能不会。我不想最终杀死比我应该拥有的更多的进程......
-
@Tomas:那么你应该真的阅读链接。