임의의 한 자리 숫자를 생성하는 방법은 무엇입니까?
나는 seq -w 10
이것을 활용하여 다음과 같은 결과를 얻었습니다.
01
02
03
04
05
06
07
08
09
10
0에서 10까지 1자리 숫자만 무작위로 선택하는 추가 논리를 어떻게 구현할 수 있습니까?
답변1
shuf -i0-9 -n1
shuf
무작위 순열을 생성하고 -i
범위 인수를 허용하므로 range 를 제공 0-9
하고 -n1
like 는 head
난수의 첫 번째 숫자만 인쇄합니다.
RANDOM
또는 Korn과 같은 쉘의 내장 쉘 변수(ksh, zsh, bash, yash, busybox sh)를 사용할 수 있습니다 .
echo "$((RANDOM % 10))"
하지만RANDOM
(에서 man bash
)
0에서 32767 사이의 임의의 정수
이는 특정 숫자의 가능성이 약간 낮다는 것을 의미합니다(중요한 경우).
숫자의 경우 0-7
이는 사실입니다 100 * 3277 / 32767 ≈ 10.00092 %
.
숫자 8
합계 의 9
경우100 * 3276 / 32767 ≈ 9.99786 %
답변2
0부터 9까지 10개의 "단위 숫자"가 있습니다. (10은 단위 번호가 아닙니다.) 따라서 외부 명령을 사용하지 않고 순수 Bash를 사용하여 이 작업을 수행하려면 다음을 수행할 수 있습니다.
echo $((RANDOM%10))
7
((RND=RANDOM%10))
echo $RND
4
답변3
POSIX적으로:
awk 'BEGIN{srand(); print int(rand()*10)}'
대부분의 awk
구현에서는 동일한 초 내에 두 번 호출되면 동일한 숫자가 생성됩니다.
답변4
사용쉿명령은 GNU 유틸리티입니다.
shuf -i 0-9 -n 1