2015-02-04 3 views
2

bash를 사용하여 임의의 횟수로 python 스크립트를 반복적으로 실행하려고합니다. 그러나 대용량 스크립트를 실행하지 않으려면 실행할 수있는 시간의 상한값을 지정하고 싶습니다. 현재 내가 나머지를 반환하는 '모듈'연산자를 사용하여 다음 문자열로 루프를 수행 할 때 사용하고 있습니다 :bash의 난수에 상한값으로 임의의 횟수만큼 함수를 반복하는 방법

#!/bin/bash 

RANGE=1000 

number=$RANDOM 
let "number %= $RANGE" 

for run in {1..$number} 
do 
    python script.py 
done 

난수 작동 ($number은 1-1000 사이의 임의의 숫자는 IE)를하지만, 문제는 이것이 임의의 숫자가 무엇이든 상관없이 스크립트를 한 번 실행하고있는 것으로 보인다는 것입니다.

무엇이 문제일까요?

변수가 허용되지 않기 때문에
for run in {1..$number} 

(확장) 범위 {..} 내부에 따라서 한 번만 상관없이 $number의 값이 무엇인지 실행에 루프를 일으키는 :

+2

당신이 변수를 사용할 수 없습니다'{1..1000}'건설 .. – jm666

답변

3

문제는이 라인입니다.

이처럼 사용

#!/bin/bash 

range=1000 
number=$((RANDOM % range)) 

for ((run=1; run <= number; run++)); do 
    python script.py 
done 
+1

내 다른 두 의견을 삭제했습니다. 각 반복마다 'number % range'를 평가하지 않을 수도 있고 그렇지 않을 수도 있습니다. 나는'range = 1000; number = $ (($ RANDOM % $ range))'와'for ((run = 1; run <= number; run ++))'또는 이와 동등한 것으로 생각한다. –

관련 문제