プログラムでは、変数を0または1のランダムな値に設定する必要があります。
どうすればいいかわからず、Googleは失敗しました。
プログラムでは、変数を0または1のランダムな値に設定する必要があります。
どうすればいいかわからず、Googleは失敗しました。
回答:
簡単な方法の1つ$RANDOM
は、範囲[0;の擬似乱数16ビット整数を取得することです。32767]。これを単に[0;に変換できます。1]乱数の2を法とする計算:
echo $(( $RANDOM % 2 ))
Bashの詳細$RANDOM
:http : //www.tldp.org/LDP/abs/html/randomvar.html
この単純な構造を使用すると、このコミックのように、ランダム性を使用して強力なスクリプトを簡単に構築できます...
$[]
構文を使用しています- rm
その--no-preserve-root
機能があったかどうか誰が知っていますか?
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe
、頭を下げて、ゲームに負けたことを知り、でディスクを消去しdd
ます。
--no-preserve-root
実装されたのは「最近」だけです。いつ実装されたかについての情報はありませんが、IIRCはほんの数年前のものです。そして、Linuxに関して言えば、それはごくわずかです。これに関するチケットを次に示します。bugs.launchpad.net
使用できます 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
例:
$ 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
どうですか:
#!/bin/bash
r=$(($RANDOM % 2))
echo $r
あるいは:
r=$(($(od -An -N1 -i /dev/random) % 2))
多分:
r=$(seq 0 1 | sort -R | head -n 1)
またはもっとハッキーに:
r=$(($(head -128 /dev/urandom | cksum | cut -c1-10) % 2))
そしてまた:
r=$(apg -a 1 -M n -n 1 -m 8 -E 23456789 | cut -c1)
と同様:
r=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
--no-preserve-root
-彼らが望んでいたロシアのルーレットのようにそうでないかもしれないゲームを...