2012-12-12 4 views
0

매 시간마다 N 조작 (동일한 조작)을 계산해야합니다.스케줄 조작 bash

#!/bin/bash 
N=10; 
# my operation 
sleep 3600/${N} 

어떤 제안을 : 내 작업을해야하지만 시간 당이 N 시간을 실행 이해할 수없는 순간

?

+1

bash에서 산술을 수행하는 방법을 알고 싶습니까? (예 : cron으로) 명령을 예약하고 싶습니까? –

+4

@honk 힌트로서, 당신은'cron'을 사용하여 이것을해야합니다 –

+0

아니오, crontab을 사용하지 말아주세요, 제 생각에는 목적이 아닙니다 .. –

답변

1

글쎄, 지금 작성한 그대로, "my operation"을 한 번 수행 한 다음 6 분 동안 잠자기하고 종료합니다. 당신이 필요로하는 것은 그 두 줄을 둘러싼 루프 구조입니다. bash는 여러 가지 루프 구조를 지원하지만, 아마이 경우에 대한 간단한은 다음과 같습니다

물론
#!/bin/bash 
N=10 
((delay=3600/N)) 
while true 
do 
    # do something 
    sleep ${delay} 
done 

당신이 ^C 또는 kill 또는 함께 종료해야하므로,이 경우 루프를 종료에 대한 규정은 없다 어떤 것. 특정 횟수만큼만 실행하기를 원하면 for 루프를 대신 사용할 수도 있고, 반복 할 때마다 특정 파일의 존재 여부도 확인하고 루프를 만들거나 제거 할 때 루프를 종료 할 수 있습니다 파일. 가장 적절한 접근 방법은 실제로하고 싶은 일의 더 큰 그림에 달려 있습니다.

+0

고마워, 그게 내가 원하는거야! –