shell script 질문드립니다.

삼구의신의 이미지

아래 코드는 aaa에 ps -ef 로 appLaunch.sh 를 검색하여 2개 이상 있으면 종료하도록 하는 스크립트 입니다.
ps -ef 전에 echo로 aaa변수를 찍으면 0이 나오는데 ps -ef 직후에 echo를 찍어보면 aaa 가 2로 찍힙니다.
왜그런지를 모르겠습니다.

//appLauncher.sh
 
#!/bin/sh
aaa=0
while :
        do
                echo $aaa
                aaa=`ps -ef | grep 'appLauncher.sh' | grep -v 'grep' | wc -l`
                echo $aaa
                if [ $aaa -ge 2 ];then
                        sleep 10
                        exit
                fi
        done
 
 
출력 :
0
2

*추가

shell script에서 ps -ef할때 프로세스가 일시적으로 2개가 생겨는것을 발견했습니다.
왜그런지 알 수 있을까요?

//appLauncher.sh
 
 
#!/bin/sh
echo `ps -ef | grep 'appLauncher.sh' | grep -v 'grep'`
 
출력:
8331 root 2164 S /bin/sh /app/appLauncher.sh
8332 root 2164 S /bin/sh /app/appLauncher.sh