qq_25096021 2015-11-05 09:20 采纳率: 0%
浏览 1420

linux shell脚本问题,急求

#!/bin/bash

        SERNAME=$1

  kill_process() {

  PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | awk '{print $2}')
 echo $PID
 kill -9 $PID
 sleep 2
 }

 kill_process


    这上边的脚本命名为a.sh,我在执行时是  a.sh server1,但会出错,不是报错,是杀错进程,一般显示:
    1234 1234
    killed

    如果不用参数执行,直接 PID=$(ps -ef | grep server1 | grep -v 'grep' | awk '{print $2}')
    就不会出错,一般执行完毕后什么都不显示,但进程会杀掉
这是怎么回事??
  • 写回答

1条回答

  • 诸相非相 2015-11-05 11:00
    关注
     PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | awk '{print $2}')
    

    改成
    PID=$(ps -ef | grep $SERNAME | grep -v 'grep' | grep -v 'a.sh' | awk '{print $2}')
    试试(a.sh换成你实际执行的脚本名字)

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试