Bashスクリプトでランダムな浮動睡眠?

Bashスクリプトでランダムな浮動睡眠?

私のスクリプトでは、1秒未満の2つの数字の間にランダムな一時停止が必要です。以下は有効でした。

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

しかし、突然もうそうではありませんでした。別の方法がありますか?

重要な場合は、Linux Mint 20を使用しています。

答え1

オペレーティングシステムがPythonベースのソリューションを使用しなくなったため失敗します。プロセスの一環として、以下をpython2指すことはありません。python3/usr/bin/python誰でも基本的に。

python3では、パラメータ1を括弧で囲む必要があるprint関数です。したがって、次のものを使用できます。

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

ただし、200ms~800msの睡眠値の単純な場合整数200から600の間(bashの組み込み変数RANDOMといくつかのモジュロ操作を使用できます)の前に、次を追加します0.

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

  1. たとえば、参照してください。python-future: 基本構文の違い - 印刷

関連情報