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

时间:2017-11-04 07:54:55

标签: linux shell grep ps

我正在尝试运行以下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_exec运行此脚本,输入脚本将是来自php文件的数组元素

1 个答案:

答案 0 :(得分:1)

您得到1,因为ps -ef的输出包含命令

sh test.sh abcde

,当你grep -i "abcde"时,这匹配。您需要对此进行过滤,原因与筛选grep的原因相同,因此请更改

grep -v grep

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