请问;下面这个脚本怎么老是不能正确执行啊?

gaoqing000 2008-02-03 02:46:10
#!/bash/bin
while ( ps -ef | grep "p1" | awk '{xpid=$2;print $2}' )
do
kill -9 $xpid
echo "kill process $xpid"
done

while ( ps -ef | grep "p2" | awk '{xpid=$2;print $2}' )
do
kill -9 $xpid
echo "kill process $xpid"
done

while ( ps -ef | grep "p3" | awk '{xpid=$2;print $2}' )
do
kill -9 $xpid
echo "kill process $xpid"
done



发现总是不是把p1, p2 , p3全删除啊?
...全文
51 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaoqing000 2008-02-03
  • 打赏
  • 举报
回复
niumengnie 2008-02-03
  • 打赏
  • 举报
回复
xpid=`ps -ef | grep "p1" | grep -v "grep" | awk '{print $2}'`
kill $xpid
echo "killall $xpid"

这样就可以了

xpid 生存期的问题 , 出了awk xpid 就是另外一个变量了
wangox 2008-02-03
  • 打赏
  • 举报
回复
支持楼上的
gaoqing000 2008-02-03
  • 打赏
  • 举报
回复
收了,还是一样,
还有问题 

还有啊,

echo "kill process $xpid"
这句好像不能执行出来啊
niumengnie 2008-02-03
  • 打赏
  • 举报
回复
ps -ef ¦ grep "p1" ¦ awk '{xpid=$2;print $2}'

改成
ps -ef ¦ grep "p1" ¦ grep -v "grep" | awk '{xpid=$2;print $2}'
就好了, 因为 的 grep "p1" 有个 "p1" , 结果
ps -ef ¦ grep "p1" 选出来的是两个结果


另外两个一样

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧