任意の1桁の数字を生成する方法は?
私は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
like-n1
は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
実装では、同じ秒以内に2回呼び出されると同じ番号が生成されます。
答え4
使用シェンコマンドはGNUユーティリティです。
shuf -i 0-9 -n 1