bash 脚本中的随机浮动睡眠?

bash 脚本中的随机浮动睡眠?

我的脚本中需要在两个小于 1 秒的数字之间进行随机暂停。以下内容曾经有效:

#! /bin/bash
sleep $(python -c "import random;print random.uniform(.2,.8)")

但突然间就不再这样了。还有其他方法吗?

我使用的是 Linux Mint 20,如果这很重要的话。

答案1

您的基于 python 的解决方案失败了,因为您的操作系统已弃用,python2转而使用python3.作为该过程的一部分,/usr/bin/python不再指向任何一个默认情况下。

在 python3 中,print它是一个函数,其参数1需要用括号括起来。所以你可以使用:

sleep $(python3 -c "import random;print(random.uniform(.2,.8))")

然而,对于睡眠值在 200 毫秒到 800 毫秒之间的简单情况,您可能会生成一个整数200 到 600 之间(你可以在 bash 中使用内置RANDOM变量加上一些模运算),并在前面添加0.

sleep 0.$((200 + RANDOM%600))

  1. 参见例如python-future:基本语法差异 - print

相关内容