(Bash): פקודה ליצור מספר אקראי

לפעמים אנו מתכנתים איזה סקריפט לְהַכּוֹת .... ואנחנו צריכים (משום מה) ליצור מספר אקראי כלשהו.

בשביל זה אתה יכול לתכנת יישום שלם (או פונקציה ...) כן, אבל ... באופן מוזר המערכת שלנו כבר עשתה את זה 😀

במסוף, הקלד את הדברים הבאים ולחץ [להיכנס]:

הד $ RANDOM

... מספר יופיע, הם עושים שוב את אותו הדבר ומספר אחר מופיע, וכן הלאה 🙂

מה שהוא עושה זה להראות לך מספר אקראי (כלשהו) בין 0 ל -32768 (מספר שלם, כלומר ללא פסיק).

אם אתה צריך שזה יהיה מספר אקראי, אבל בין 0 ל ... נניח 100, אתה יכול לשים עליו את המגבלה הזו 😀

הד $ (($ RANDOM% 100))

אותו דבר, דוגמא נוספת ... אם אתה רוצה שזה יהיה מספר בין 0 ל -29 זה יהיה:

הד $ (($ RANDOM% 29))

האם זה לא מובן? 😀

אם הם ישתמשו בו בסקריפט bash שהם עושים, כדי להקצות את הערך הנוצר (מספר אקראי) למשתנה זה יהיה:

VARIABLE = "הד $ (($ RANDOM))"

ובכן, זהו, אני לא יודע מה איתך ... אבל אני יודע שזה יועיל לי בשלב מסוים האהה.

לגבי


10 תגובות, השאר את שלך

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   אוסקר דיג'ו

    ובכן, בדקתי אותו והוא מחזיר רק מספר בן 4 ספרות, איך אוכל להגדיל אותו?
    טיפ מעניין מאוד, תודה.

    1.    KZKG ^ גאארה דיג'ו

      מחזיר מספר בין 0 ל 32768, לא הצלחתי להשיג מספרים גדולים יותר.

  2.   josue דיג'ו

    והאם זה יכול לייצר exececimals ????

  3.   עוֹרֵב דיג'ו

    VARIABLE = "הד $ (($ RANDOM))"

    זה עובד אבל לא אופטימלי, מהסיבה הפשוטה ש- RANDOM הוא משתנה ותוכל לעשות:
    משתנה = $ RANDOM
    וזה הכל! אל תריץ הד באפרטה מסופית (וזה מה שאתה עושה)

    1.    KZKG ^ גאארה דיג'ו

      כן, ברור שניתן להשיג זאת כך ... ההבדל היחיד הוא שבהמשך, כדי לראות את המספר שלקח המשתנה (מכיוון שהמשתמש אינו מנחש), יהיה צורך לעשות הד ... ובסופו של דבר, מה שאני עושה כאן זה פשוט לעשות את ההד (כך שהמשתמש יוכל לראות איזה מספר נלקח) מההתחלה.

      האם אני עושה את עצמי מובן? 🙂

  4.   וולמר בוליבר דיג'ו

    דרך נוספת לייצר מספר אקראי, אם כי הפעם זו תהיה פקודה זו:

    תאריך "+% N" | חתך-ג 9

    זה ייתן לנו את התאריך בננו שניות עם 9 ספרות. אם אנחנו רוצים ספרה אחת, אז אתה שם את "cut -c 9" (הספרה האחרונה תמיד אקראית יותר מכיוון שהיא הקטנה ביותר של המספר). אם אנחנו רוצים 2 דמויות, אנחנו שמים את "חתך - c 8,9". אם אנחנו רוצים שלוש דמויות אז "חתוך -c 7-9" (אנחנו מתחילים להשתמש במקף).

    הדבר הרע היחיד בכך הוא אם אנו רוצים לקבל מספרים אקראיים רבים ברצף בזמן קצר, מכיוון שמדובר במספר אקראי המבוסס על תאריך עם הזמן שלו. כלומר, אם נכין עם פקודה זו נוכל לראות את זה:

    $ עבור i ב- `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 אינה הגיונית עבור המתורגמן.

    משמעות הדבר היא כי הד $ (($ RANDOM% 10) ייתן תוצאות בין 0 ל 9, אך לעולם לא 10.
    הפתרון לסכסוך זה הוא להוסיף אחד למגבלה שלך, כך שאותו מספר ייפול בטווח האקראי.

    הד $ (($ RANDOM% 11))

    זה ייתן תוצאות בין 0 ל -10.

    ברכה.

  8.   עמיאל דיג'ו

    שלום, בדיוק בניתי משהו כזה, אבל נתקלתי בבעיה.

    אני רוצה ליצור 6 מספרים שונים מ-00 עד 45 אבל לא לחזור עליהם.

    echo $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ RANDOM%46))

    דוגמה: 17 33 16 36 45 27