bashでwhileループ条件が満たされない場合は、Pythonコードを完了せずに終了します。

bashでwhileループ条件が満たされない場合は、Pythonコードを完了せずに終了します。

これまで私はこれを持っています。問題は、pythoncode.py数秒前に起動した場合は、完了するまで数秒8*60*60以上実行することができなく8*60*60なることです。実行していても、pythoncode.py正確に(緩く+ - 1秒は問題ではありません)、秒で終了する必要があります。8*60*60

#! /bin/bash
end=$((SECONDS+8*60*60))

while [ $SECONDS -lt $end ]; do
    python3 /Users/Name/Desktop/pythoncode.py
done

私は初心者なので、一般的な答えではなく、この例が正確に何をしたいのかを説明してください。ありがとう、明けましておめでとうございます。

ベストアンサー1

バックグラウンドでPythonスクリプトを呼び出し、スリープ機能をタイマーとして使用できます。

#Execute the script in the background
python3 /Users/Name/Desktop/pythoncode.py & 
#Get its process id
pypid=$!
#Wait for the needed period in seconds
sleep "$end"
#Then force the process to be terminated
kill -9 $pypid

おすすめ記事