循环没有随机输出

时间:2016-09-25 11:54:11

标签: bash

我试图在每次循环迭代中获得随机输出:

#!/bin/bash
random() {
        shuf -i 0-9 -r -n 1
}

rnd=$(random)

until [ $rnd -ge "5" ]
do
        sleep 1
        echo $rnd
done
# I need these functions, so can't do it any simpler.

但我得到的是:

./test.sh
2
2
2
2
2
2
^C

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您希望生成一个新的随机数,并在循环的每次迭代中将其分配给rnd。在你的代码中,你在循环之前分配它一次,因此它不会改变,你每次都得到相同的输出。

尝试将分配移动到循环中。类似的东西:

rnd=0
until [ $rnd -ge "5" ]
do
    rnd=$(random)
    sleep 1
    echo $rnd
done