반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: echo] 같은 줄에 문자열 겹쳐 쓰기 (0) | 2020.10.21 |
---|---|
[bash: tr] 대소문자 변환 (0) | 2020.10.21 |
[bash: expr, bc] 산수 계산 (정수 및 실수 연산) (0) | 2020.10.20 |
[bash: expect] ssh 자동 접속 (확장) (0) | 2020.10.19 |
자동 접속 script 사용할 때 명심할 점 (0) | 2020.10.19 |