Byt*_*der 32
一种简单的方法是使用$RANDOM检索范围 [0; ] 的伪随机 16 位整数。32767]。您可以简单地将其转换为 [0; 1] 通过计算随机数的模 2:
echo $(( $RANDOM % 2 ))
Run Code Online (Sandbox Code Playgroud)
有关 Bash 的更多信息$RANDOM:http : //www.tldp.org/LDP/abs/html/randomvar.html
通过这个简单的构造,您可以使用随机性轻松构建强大的脚本,就像在这部漫画中一样......
Zan*_*nna 15
你可以用 shuf
DESCRIPTION
Write a random permutation of the input lines to standard output.
-i, --input-range=LO-HI
treat each number LO through HI as an input line
-n, --head-count=COUNT
output at most COUNT lines
Run Code Online (Sandbox Code Playgroud)
例子:
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
1
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
0
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
0
$ foo=$(shuf -i0-1 -n1)
$ echo $foo
1
Run Code Online (Sandbox Code Playgroud)
怎么样:
#!/bin/bash
r=$(($RANDOM % 2))
echo $r
Run Code Online (Sandbox Code Playgroud)
甚至:
r=$(($(od -An -N1 -i /dev/random) % 2))
Run Code Online (Sandbox Code Playgroud)
也许:
r=$(seq 0 1 | sort -R | head -n 1)
Run Code Online (Sandbox Code Playgroud)
或者更骇人听闻:
r=$(($(head -128 /dev/urandom | cksum | cut -c1-10) % 2))
Run Code Online (Sandbox Code Playgroud)
并且:
r=$(apg -a 1 -M n -n 1 -m 8 -E 23456789 | cut -c1)
Run Code Online (Sandbox Code Playgroud)
也:
r=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
Run Code Online (Sandbox Code Playgroud)