0
私は2つのスクリプトを持っています.1つはsoftware.sh
で、もうひとつはtimer.sh
です。どちらも別々の端末で実行されます。私はそれが唯一の実行開始時に一度チェックします連続どうやらチェックされるソフトウェアの実行時間をチェックif文をしたい:(続きDo文
これは
をsoftware.sh
のPIDを取得し、その実行時間をカウント
timer.sh
です
#!/bin/bash
while ((1)); do
PID_Ardu=$(pidof arducopter)
Time= ps -p $PID_Ardu -oetime= | tr '-' ':' | awk -F: '{ total=0; m=1; } { for (i=0; i < NF; i++) {total += $(NF-i)*m; m *= i >= 2 ? 24 : 60 }} {print total}'
if [[ $Time < 20 ]]; then **#THIS SHOULD BE EXECUTED CONTINOUSLY**
echo $Time
else
echo INSIDE
ps -ef | grep software| grep -v grep | awk '{print $2}' | xargs kill
fi
done
これはTime
変数は文字列ではなく、Tの戻り値が割り当てられている様々な生成されたファイルを
#!/bin/bash
chmod a+x *.exp
./ACCF01.exp | wait |echo "FINISHED SCRIPT 1" #Run the ACCF01 script
sed -i '/ACCF01.exp/d' ./software.sh #Delete previous line after finishing execution.
./ACCF02.exp | wait |echo "FINISHED SCRIPT 2"
sed -i '/ACCF02.exp/d' ./software.sh
./ACCF03.exp | wait |echo "FINISHED SCRIPT 3"
sed -i '/ACCF03.exp/d' ./software.sh
./ACCF04.exp | wait |echo "FINISHED SCRIPT 4"
'bash -x timer.sh'で実行するか' set -x'を挿入すると、実行するコマンドが出力されます。 – eckes
No luck :(私はまた、if文の中でスクリプト自体を実行して、それが継続的に実行されることを確実にしましたが... ... if文は最初から実行されます –
何もないのはどういう意味ですか? – eckes