脚本执行次数

脚本执行次数

我试图找到脚本的运行次数,但它总是 2,即使只运行一次。

sh 11.sh
1
 11.sh already running,exiting..

这是代码。

ps -ef | grep -v grep | grep -c "$0"
if [[ `ps -ef | grep -v grep | grep -c "$0"` -gt "1" ]]; then
            `echo " $0 already running,exiting.."`
fi

答案1

使用 pgrep ...

#!/bin/bash

PNAME=$(basename "$0")

COUNT=$(pgrep -c -x  $PNAME)

(( COUNT > 1 ))  &&  echo "$0 already running, exiting..."                                                           

答案2

仅考虑单个实例11.sh运行,并鉴于此11.sh

n=`ps -ef | grep -wc "$0"` n=$((n-2))
echo $n
[ $n -gt "1" ] &&  echo " $0 already running,exiting.."

运行sh 11.sh输出:

 1

反引号和grep添加另外两ps行。因为我们知道这个数字是2,只需减去n-2即可得到正确的数字。

相关内容