bash判断自己进程个数很奇怪的现象,谁能解释下啊?

monitor.sh 内容

#!/bin/sh
i=`ps -ef|grep 'monitor.sh'|grep -v grep|wc -l`
echo $i

输出的不是0,而是2,很奇怪

阅读 3.1k
1 个回答

你管道命令里的 grep 本质上也是一个程序,会在管道里执行,它的执行参数是 'monitor.sh'

再加上你运行的这个脚本本身名字也叫这个(相当于运行了 bash 程序、执行参数是 'monitor.sh')。

你用 grep 筛选的时候这俩程序都在运行,当然会被筛选出来了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题