bash script2020. 10. 21. 12:16

 

반달가면 이글루에서 백업 - bahndal.egloos.com/402428

 

난수(random number)를 생성하고 싶으면 $RANDOM 변수를 이용하면 되겠다.

echo $RANDOM

위와 같이 그냥 사용하면 0에서 32767 사이의 자연수가 만들어진다. 만약 난수의 범위를 정하고 싶다면 모듈로(modulo)연산을 이용하자. 예를 들어 두자리수를 만들려면 난수를 100으로 나눈 나머지값을 취하면 된다.

echo `expr $RANDOM % 100`

 

좀 더 복잡한 범위를 주고 싶다면 지난번에 올린 산수 계산 게시물에 있는 bc를 이용하자.

범위가 120이상 253이하인 난수를 만들려면 어떻게 할까? 일단 0~133 사이의 난수를 만든 후에 120을 더해 주면 된다.

 

echo "($RANDOM % 134) + 120" | bc

변수를 이용하면 좀 더 유연하게 사용할 수 있겠다. 난수 생성용 seed는 현재 시각의 나노초(nanosecond) 부분을 사용했다.

 

# random seed
RANDOM=`date "+%N"`
# make a random number between 120 & 253
min_val=120
max_val=253
mod_val=`echo "$max_val - $min_val + 1" | bc`
random_val=`echo "($RANDOM % $mod_val) + $min_val" | bc`
echo $random_val

 

728x90
Posted by 반달가면