-1
このようなbashスクリプト内のif-thenステートメントを、やっている場合は、ここでfoo_processが実行されている場合はのpgrep条件文の構文
if [ "$pgrep foo_process" ] > 0; then
other foo
fi
、if文以上がいるので、真の結果を生じるはずですpidは、
pgrep foo_process
によって返されます。しかし、以下の "do while"スクリプトは、foo_processがいつ停止したかを検出していません。
#!/bin/bash
if [ "$pgrep foo_process" ] > 0; then
while [ "$pgrep foo_process" ] > 0; do
/home/scripts/arttst.sh
sleep 2
done
else
fi
exit 4
なぜですか?
(0または1のいずれか)、それはまだ動作しませんをバイナリ出力を得るためのpgrep構文を使用した場合でも:
#!/bin/bash
#pgrep foo_process
if [ "$pgrep -f foo_process &> /dev/null ; echo $?" ] = 0; then
while [ "$pgrep -f foo_process &> /dev/null ; echo $?" ] = 0; do
bash /home/script/arttst.sh
sleep 2
done
else
exit 4
fi
exit 4