[bash: RANDOM] 난수 생성 리눅스 bash script

난수(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



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

625349
4728
1719420

ad_widget_2