代码之家  ›  专栏  ›  技术社区  ›  Somesh Garje

运行shell脚本以获得正确的进程计数

  •  0
  • Somesh Garje  · 技术社区  · 7 年前

    我正在尝试运行以下shell脚本 test.sh

    $service=$1
    $count=`ps -ef |grep -i "$service" |grep -v grep | wc -l`
    echo "$count"
    

    命令: sh test.sh abcde

    我希望脚本输出0,但它给了我1。

    PS:我将从一个php文件中使用shell\u exec运行这个脚本,脚本的输入将是来自php文件的数组元素

    1 回复  |  直到 7 年前
        1
  •  1
  •   Barmar    7 年前

    你得到 1 因为 ps -ef 包括命令

    sh test.sh abcde
    

    当你这样做的时候,这是匹配的 grep -i "abcde" grep ,所以改变

    grep -v grep
    

    grep -E -v 'grep|test\.sh'