(バッシュ):ランダムな数を生成するコマンド

時々、私たちはいくつかのスクリプトをプログラミングしています Bash …。 そして(何らかの理由で)ランダムな数を生成する必要があります。

そのためには、アプリケーション全体(または機能...)をプログラムできますが...不思議なことに、私たちのシステムはすでにそれを行っています😀

ターミナルで、次のように入力してを押します [入る]:

エコー$ランダム

...番号が表示され、同じことを繰り返し、別の番号が表示されます🙂

それがすることはあなたに0と32768の間のランダムな数(任意)を表示することです(整数、つまり、コンマなし).

ランダムな数字にする必要があるが、0から...の間の場合、たとえば100の場合、その制限を設定できます😀

エコー$(($ RANDOM%100))

同じ、別の例... 0から29までの数値にしたい場合は、次のようになります。

エコー$(($ RANDOM%29))

分かりませんか? 😀

彼らが行っているbashスクリプトでそれを使用する場合、生成された値(ランダムな数値)を変数に割り当てるには、次のようになります。

VARIABLE = `echo $(($ RANDOM))`

そして、これはそれです、私はあなたについて知りません...しかし、私はそれがいつか私に役立つことを知っていますハハハ。

よろしく


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   オスカー

    さて、私はそれをテストしてきました、そしてそれは4桁の数字しか返しません、それを大きくする方法は?
    非常に興味深いヒント、ありがとうございます。

    1.    KZKG ^我愛羅

      0から32768までの数値を返しますが、それ以上の数値を取得できませんでした。

  2.   ジョスエ

    そしてそれはexadecimalsを生成することができますか????

  3.   カラス

    VARIABLE = `echo $(($ RANDOM))`

    これは機能しますが、RANDOMが変数であり、次のことができるという単純な理由から、最適ではありません。
    変数= $ランダム
    以上です! aprteターミナルでechoを実行しないでください(これはあなたがしていることです)

    1.    KZKG ^我愛羅

      はい、明らかにこのように達成できます…唯一の違いは、後で変数が取った数を確認するために(ユーザーは推測者ではないため)、エコーを実行する必要があるということです…。 そして最後に、私がここで行うことは、最初からエコーを実行することです(ユーザーが取得された番号を確認できるようにするため)。

      私は自分自身を理解させますか? 🙂

  4.   ウィルマーボリバル

    ランダムな番号を生成する別の方法ですが、今回は次のコマンドになります。

    日付 "+%N" | カット-c9

    これにより、9桁のナノ秒単位の日付が得られます。 単一の図が必要な場合は、「cut -c 9」を入力します(最後の図は、数値の中で最も小さいため、常にランダムになります)。 2つの数字が必要な場合は、「cut --c8,9」を配置します。 7つの数字が必要な場合は、「cut -c 9-XNUMX」(ハイフンの使用を開始します)。

    これの唯一の悪い点は、これが日付と時刻に基づくランダム番号であるため、短時間に多数のランダム番号を連続して取得したい場合です。 つまり、そのコマンドでforを作成すると、次のことがわかります。

    $ for i in `seq 1 1 500`; 日付 "+%N"を実行します。 完了

    ...
    ...
    ...

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

    ...
    ...
    ...

    はっきりしていると思いますよね? もちろん、左側の図は短い時間でより類似しており、右側の図はより「ランダム」です。

  5.   黒い目

    うーん…。 私はそれが好きでした、私はランダムな数を生成するために残されているミニスクリプトを持っています、ありがとう。

  6.   G.

    それは..そしてたくさん..
    特に、パスワードやセキュリティなどを使用してbashでインターフェイスをプログラミングしている場合はそうです。
    優れたアプロテ。

  7.   ホセ・アントニオがベントをフォロー

    ねえ。
    まず第一に、もちろん、私が長い間フォローしてきたこの素晴らしいウェブサイトでおめでとうございます。
    次に、このエントリに小さなメモを付けます。
    制限が次のように行われる場合:

    エコー$(($ RANDOM%10))

    実際、インタープリターに注文するのは、生成された数値が常に後続の数値(この例では10)のモジュラス%(除算の残り)であるということです。
    数値を10で割っても、除数自体よりも大きい値が残りになることはありません。
    問題は、0による除算はインタープリターにとって論理的ではないため、同じ番号が得られないことです。

    つまり、echo $(($ RANDOM%10)は、0から9の間の結果を返しますが、10は得られません。
    この競合の解決策は、同じ数がランダムな範囲内に収まるように、制限にXNUMXを追加することです。

    エコー$(($ RANDOM%11))

    これにより、0から10の間の結果が得られます。

    挨拶。

  8.   アミエル

    こんにちは、私はちょうどこのようなものを構築していましたが、問題が発生しました。

    6から00までの45つの異なる数字を作りたいのですが、繰り返しません。

    echo $(($ RANDOM%46))$(($ RANDOM%46))$(($ RANDOM%46))$(($ RANDOM%46))$(($ RANDOM%46))$(($ランダム%46))

    例:17 33 16 36 45 27