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

관련 정보