답변:
배열을 사용하여 값을 보유하고 내장 변수를 사용하여 값 중에서 선택하십시오 $RANDOM
. 예를 들어
x[0]=10 # One decade
x[1]=100 # One century
x[2]=1000 # One millennium
for ((i=1; i < 20; ++i)); do echo -n " ${x[$RANDOM%3]}"; done; echo
1000 10 10 10 10 100 10 100 100 10 10 100 100 100 10 1000 1000 1000 10
임의성 (random of randomness)은 최선이 아니지만 (읽기 바이트 /dev/urandom
) 스크립트에는 충분할 것입니다.
참고 1 : 사람들이 의견에서 관찰했듯이 배열 요소를 개별적으로 초기화하는 대신 배열 리터럴을 사용할 수 있습니다 x=(10 100 1000)
.
참고 2 : 배열의 요소 수를 하드 코딩하는 대신에 로돔 요소를 추출 할 수 있습니다 ${x[$RANDOM%${#x[@]}]}
.
x=(10 100 1000)
bash에서 리터럴로 배열을 만드는 것처럼 보입니다 . 이는 더 읽기 쉽고 관용적입니다
x[0]=10 # This sets the first value of x to ten. Ten is the number of fingers that humans have (excepting birth defects or mutilation). It is also the sum of 9 and 1, or product of 5 and 2. Ten is not prime. A traditional Christmas gift is ten lords a-leaping.
?
bash (또는 zsh 또는 ksh93 )를 사용하는 경우 다음을 수행 할 수 있습니다.
echo "$((10**($RANDOM%3+1)))"
또는
var=$((10**($RANDOM%3+1)))
var 에 할당
GNU coreutils shuf
유틸리티를 사용할 수도 있습니다 .
a=$(shuf -n1 -e 10 100 1000)
RANDOM
다른 답변에 따라 사용 하는 것이 거의 확실합니다.