(Bash) : 난수 생성 명령

때때로, 우리는 강타 …. (어떤 이유로) 난수를 생성해야합니다.

이를 위해 전체 애플리케이션 (또는 기능 ...)을 프로그래밍 할 수 있습니다. 예,하지만 ... 흥미롭게도 우리 시스템은 이미 그렇게했습니다 😀

터미널에서 다음을 입력하고 [시작하다]:

에코 $ 랜덤

... 숫자가 나타날 것이고, 그들은 다시 같은 일을하고 다른 숫자가 나타납니다.

그것이하는 일은 0에서 32768 사이의 임의의 숫자 (임의)를 표시하는 것입니다 (즉, 쉼표가없는 정수).

임의의 숫자가 필요하지만 0에서 ... 100 사이라고 가정 해 봅시다. 제한을 둘 수 있습니다 😀

에코 $ (($ RANDOM % 100))

같은 또 다른 예 ... 0에서 29 사이의 숫자를 원하면 다음과 같습니다.

에코 $ (($ RANDOM % 29))

이해되지 않습니까? 😀

그들이하고있는 bash 스크립트에서 그것을 사용한다면, 생성 된 값 (난수)을 변수에 할당하는 것은 다음과 같습니다 :

VARIABLE =`에코 $ (($ RANDOM))`

그리고 이것은 당신에 대해 잘 모르겠습니다 ...하지만 나는 그것이 어느 시점에서 나에게 유용 할 것이라는 것을 알고 있습니다 hahaha.

안부


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   오스카

    글쎄, 나는 그것을 테스트하고 있으며 4 자리 숫자 만 반환합니다. 어떻게 더 크게 만들 수 있습니까?
    매우 흥미로운 팁, 감사합니다.

    1.    KZKG ^ 가아라

      0에서 32768 사이의 숫자를 반환하지만 더 큰 숫자를 얻을 수 없습니다.

  2.   josue

    그리고 그것은 exadecimals를 생성 할 수 있습니까 ????

  3.   갈가마귀

    VARIABLE =`에코 $ (($ RANDOM))`

    RANDOM이 변수이고 다음을 수행 할 수 있다는 간단한 이유 때문에 작동하지만 최적은 아닙니다.
    변수 = $ RANDOM
    그리고 그게 다야! 터미널 aprte에서 echo를 실행하지 마십시오 (당신이하는 일입니다)

    1.    KZKG ^ 가아라

      예, 분명히 이렇게 얻을 수 있습니다. 유일한 차이점은 나중에 변수가 가져온 숫자를 보려면 (사용자가 추측자가 아니기 때문에) 에코를 수행해야한다는 것입니다. 그리고 마지막으로 여기서 제가하는 일은 단순히 처음부터 에코를 수행하는 것입니다 (사용자가 가져온 숫자를 볼 수 있도록).

      내가 이해하고 있는가? 🙂

  4.   Wuilmer 볼리바르

    난수를 생성하는 또 다른 방법은 다음과 같습니다.

    날짜 "+ % N"| 컷 -c 9

    그러면 9 자리 숫자의 나노초 단위로 날짜가 표시됩니다. 단일 숫자를 원하면 "cut -c 9"를 입력합니다 (마지막 숫자는 숫자 중 가장 작은 숫자이기 때문에 항상 더 무작위 적입니다). 2 개의 숫자를 원하면 "cut-c 8,9"를 입력합니다. 7 개의 숫자를 원하면 "cut -c 9-XNUMX"(하이픈 사용 시작).

    이것에 대한 유일한 나쁜 점은 짧은 시간에 많은 난수를 얻으려는 경우입니다. 왜냐하면 이것은 시간과 함께 날짜를 기반으로하는 난수이기 때문입니다. 즉, 해당 명령으로 for를 만들면 다음을 볼 수 있습니다.

    $ for i in`seq 1 1`; 날짜 "+ % N"; 끝난

    ...
    ...
    ...

    308311367
    310807595
    313273093
    315725181
    318186139
    320671403
    323360117
    325733353
    328335462
    330694870
    333259893
    335858999
    338375622
    340798446

    ...
    ...
    ...

    나는 그것이 분명하다고 생각합니까? 물론 왼쪽의 숫자는 짧은 시간 내에 더 유사하며 오른쪽의 숫자는 더 "무작위"입니다.

  5.   검은 눈

    음…. 나는 그것을 좋아했다. 나는 난수를 생성하기 위해 그려진 미니 스크립트를 가지고있다. 감사합니다.

  6.   G.

    .. 그리고 많이 ..
    특히 암호, 보안 등으로 bash에서 인터페이스를 프로그래밍하는 경우 haha.
    훌륭한 앞치마.

  7.   호세 안토니오가 벤트를 따랐다

    안녕하세요.
    우선, 제가 오랫동안 팔로우해온이 훌륭한 웹 사이트를 축하합니다.
    둘째,이 항목에 작은 메모를 작성하십시오.
    제한이 다음과 같이 수행 될 때 :

    에코 $ (($ RANDOM % 10))

    실제로 인터프리터를 주문하는 것은 생성 된 숫자가 항상 후속 숫자 (이 예에서는 10)의 모듈러스 % (나누기의 나머지)라는 것입니다.
    10으로 나눈 숫자는 절대로 제수 자체보다 큰 값을주지 않습니다.
    문제는 0으로 나누는 것이 인터프리터에게 논리적이지 않기 때문에 동일한 숫자를 제공하지 않는다는 것입니다.

    즉, echo $ (($ RANDOM % 10)는 0에서 9 사이의 결과를 제공하지만 10은 제공하지 않습니다.
    이 충돌에 대한 해결책은 한도에 하나를 추가하여 동일한 숫자가 임의의 범위에 속하도록하는 것입니다.

    에코 $ (($ RANDOM % 11))

    이것은 0에서 10 사이의 결과를 제공합니다.

    인사말.

  8.   아미엘

    안녕하세요, 방금 이런 것을 구축하고 있었는데 문제가 발생했습니다.

    6부터 00까지 45개의 다른 숫자를 만들고 싶지만 반복하지는 않습니다.

    에코 $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ 랜덤%46))

    예: 17 33 16 36 45 27