gpt4 book ai didi

linux - BASH - 从管道中冒出奇怪的字符

转载 作者:太空狗 更新时间:2023-10-29 11:39:16 24 4
gpt4 key购买 nike

我有这个脚本可以简单地杀死一个应用程序

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 行看到那些奇怪的字符?我怎样才能摆脱它们?

最佳答案

你得到乱码的原因可能是(我无法验证它,因为我无法访问你的环境)由于子 shell 返回不止一行。

试试这个:

KEY_NAME=/some/path
for pid in $(ps -ef | grep $KEY_NAME | grep -v grep | awk '{ print $2 }')
do
kill $pid
done
exit 0

关于linux - BASH - 从管道中冒出奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com