私はシェルスクリプトが初めてです。
私がしたいのは、スクリプトの複数のインスタンスを実行しないようにすることです。
このシェルスクリプトcntps.shがあります
#!/bin/bash
cnt=`ps -e|grep "cntps"|grep -v "grep"`
echo $cnt >> ~/cntps.log
if [ $cnt < 1 ];
then
#do something.
else
exit 0
fi
このように実行すると$./cntps.sh
、2がエコーされます
このように実行すると$. ./cntps.sh
、0がエコーされます
で実行するとcrontab
、3がエコーされます
誰かが私になぜこれが起こっているのか説明できますか? また、スクリプトの複数のインスタンスを実行しないようにする適切な方法は何ですか?