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에서는 매개변수 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: 기본 구문 차이점 - 인쇄

관련 정보