Bash 쉘 스크립트에서 1~10 사이의 난수 생성
Bash Shell Script에서 1~10의 난수를 생성하는 방법은 무엇입니까?
그럴까?$(RANDOM 1+10)
?
$(( ( RANDOM % 10 ) + 1 ))
편집. 코멘트에 따라 괄호를 괄호로 변경.http://web.archive.org/web/20150206070451/http://islandlinux.org/howto/generate-random-numbers-bash-scripting
가장 간단한 해결책은 gnu와 같은 범위를 직접 지정할 수 있는 도구를 사용하는 것입니다. shuf
shuf -i1-10 -n1
사용하고 싶은 경우$RANDOM
0의 마지막 8개의 숫자를 버리는 것이 더 정확할 것입니다.32767, 0으로 처리하면...32759, 0을 복용한 이후로...32767 mod 10은 다음과 같은 분포를 얻을 수 있습니다.
0-8 each: 3277
8-9 each: 3276
그래서 조금 느리지만 좀 더 정확하게 말하면
while :; do ran=$RANDOM; ((ran < 32760)) && echo $(((ran%10)+1)) && break; done
bash를 사용하여 난수를 생성하려면 $RANDOM 내부 Bash 함수를 사용합니다.$RANDOM을 사용하여 암호화 키를 생성해서는 안 됩니다.$RANDOM은 1970년 이후 경과된 초수로 정의된 현재 프로세스 ID(PID)와 현재 시간/날짜를 사용하여 생성됩니다.
echo $RANDOM % 10 + 1 | bc
/dev/urandom을 사용할 수도 있습니다.
grep -m1 -ao '[0-9]' /dev/urandom | sed s/0/10/ | head -n1
범위 내에서 생성하려면: {0,..,9}
r=$(( $RANDOM % 10 )); echo $r
범위 내에서 생성하는 방법: {40, ..,49)
r=$(( $RANDOM % 10 + 40 )); echo $r
다음은 $RANDOM도 /dev/urandom도 사용할 수 없는 의사 랜덤 생성기의 예입니다.
echo $ ( date + % S )| grep - o . $ | sed s/0/10/
언급URL : https://stackoverflow.com/questions/8988824/generating-random-number-between-1-and-10-in-bash-shell-script
'source' 카테고리의 다른 글
iOS 앱이 백그라운드에 있는지 확인할 수 있는 방법이 있나요? (0) | 2023.04.09 |
---|---|
왜 환경인가?Exit()는 더 이상 프로그램을 종료하지 않습니까? (0) | 2023.04.09 |
작업 대기 또는 예외 속성에 액세스하여 작업 예외가 관찰되지 않았습니다.그 결과 관찰되지 않은 예외는 (0) | 2023.04.09 |
신뢰할 수 있는 옵션이 없는 iOS9 신뢰할 수 없는 엔터프라이즈 개발자 (0) | 2023.04.09 |
Java에서 맵을 목록으로 변환하려면 어떻게 해야 합니까? (0) | 2023.04.09 |