我试图在每次循环迭代中获得随机输出:
#!/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
我做错了什么?
答案 0 :(得分:2)
您希望生成一个新的随机数,并在循环的每次迭代中将其分配给rnd
。在你的代码中,你在循环之前分配它一次,因此它不会改变,你每次都得到相同的输出。
尝试将分配移动到循环中。类似的东西:
rnd=0
until [ $rnd -ge "5" ]
do
rnd=$(random)
sleep 1
echo $rnd
done