스크립트 실행 횟수 [반복]

스크립트 실행 횟수 [반복]

스크립트가 실행된 횟수를 구하려고 하는데, 한 번만 실행해도 항상 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올바른 숫자를 얻으려면 빼기만 하면 됩니다.

관련 정보