Bash

bash腳本中的隨機浮動睡眠?

  • February 25, 2022

我需要在腳本中兩個小於 1 秒的數字之間隨機停頓。以下曾經工作:

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

但是突然就不行了。還有其他方法嗎?

如果這很重要,我在 Linux Mint 20 上。

您基於 python 的解決方案失敗了,因為您的作業系統已python2棄用python3. 作為該過程的一部分,預設情況下/usr/bin/python不再指向任何一個

在 python3print中是一個函式,需要在其參數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:基本語法差異 - 列印

引用自:https://unix.stackexchange.com/questions/692053