我试图在等待时间变化的循环中运行 echo 。以下命令已经做到了这一点
/bin/sh -c 'trap exit TERM; while :; do echo test; sleep 10 ; done;'"
但是,我不希望它一直是 10 秒,我希望它是 1 到 10 之间的随机数。为了生成 1 到 10 之间的随机数,我构造了以下
$> min=1 && max=10
$> echo $(($RANDOM%($max-$min+1)+$min))
现在,我的问题是,如何将其结合起来。例如,我尝试了以下
$> /bin/sh -c 'trap exit TERM; while :; do echo test; sleep $(($RANDOM%($max-$min+1)+$min)) ; done;'"
但这会产生错误
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `trap exit TERM; while :; do echo test; min=1 && max=10 && sleep $RANDOM%($max-$min+1)+$min ; done;
有什么建议如何将两者结合起来吗?或者如果有更好的方法,我也洗耳恭听!!
您可以将随机数分配给 var,然后将其用于
sleep
:
/bin/sh -c '
trap exit TERM;
t=$(($RANDOM%(10-1+1)+1));
echo "random time: $t";
while :; do echo test; sleep $t ; done;'
random time: 6
test
test