לפעמים אנו מתכנתים איזה סקריפט לְהַכּוֹת .... ואנחנו צריכים (משום מה) ליצור מספר אקראי כלשהו.
בשביל זה אתה יכול לתכנת יישום שלם (או פונקציה ...) כן, אבל ... באופן מוזר המערכת שלנו כבר עשתה את זה 😀
במסוף, הקלד את הדברים הבאים ולחץ [להיכנס]:
הד $ RANDOM
... מספר יופיע, הם עושים שוב את אותו הדבר ומספר אחר מופיע, וכן הלאה 🙂
מה שהוא עושה זה להראות לך מספר אקראי (כלשהו) בין 0 ל -32768 (מספר שלם, כלומר ללא פסיק).
אם אתה צריך שזה יהיה מספר אקראי, אבל בין 0 ל ... נניח 100, אתה יכול לשים עליו את המגבלה הזו 😀
הד $ (($ RANDOM% 100))
אותו דבר, דוגמא נוספת ... אם אתה רוצה שזה יהיה מספר בין 0 ל -29 זה יהיה:
הד $ (($ RANDOM% 29))
האם זה לא מובן? 😀
אם הם ישתמשו בו בסקריפט bash שהם עושים, כדי להקצות את הערך הנוצר (מספר אקראי) למשתנה זה יהיה:
VARIABLE = "הד $ (($ RANDOM))"
ובכן, זהו, אני לא יודע מה איתך ... אבל אני יודע שזה יועיל לי בשלב מסוים האהה.
לגבי
ובכן, בדקתי אותו והוא מחזיר רק מספר בן 4 ספרות, איך אוכל להגדיל אותו?
טיפ מעניין מאוד, תודה.
מחזיר מספר בין 0 ל 32768, לא הצלחתי להשיג מספרים גדולים יותר.
והאם זה יכול לייצר exececimals ????
VARIABLE = "הד $ (($ RANDOM))"
זה עובד אבל לא אופטימלי, מהסיבה הפשוטה ש- RANDOM הוא משתנה ותוכל לעשות:
משתנה = $ RANDOM
וזה הכל! אל תריץ הד באפרטה מסופית (וזה מה שאתה עושה)
כן, ברור שניתן להשיג זאת כך ... ההבדל היחיד הוא שבהמשך, כדי לראות את המספר שלקח המשתנה (מכיוון שהמשתמש אינו מנחש), יהיה צורך לעשות הד ... ובסופו של דבר, מה שאני עושה כאן זה פשוט לעשות את ההד (כך שהמשתמש יוכל לראות איזה מספר נלקח) מההתחלה.
האם אני עושה את עצמי מובן? 🙂
דרך נוספת לייצר מספר אקראי, אם כי הפעם זו תהיה פקודה זו:
תאריך "+% 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
...
...
...
אני חושב שזה ברור נכון? הדמויות משמאל דומות יותר בתוך זמן קצר, כמובן, ואלה מימין "אקראיות" יותר.
מממ .... מצא חן בעיניי, יש לי סקריפט מיני שנותר לייצר מספרים אקראיים, תודה.
זה משרת .. והרבה ..
במיוחד אם אתה מתכנת ממשק ב- bash עם סיסמה, אבטחה וכו 'וכו' וכו '.
משמש מעולה.
היי.
קודם כל, כמובן, מזל טוב על האתר המצוין הזה, שאני עוקב אחריו הרבה זמן.
ושנית, רשמו הערה קטנה לערך זה:
כאשר ההגבלה נעשית כך:
הד $ (($ RANDOM% 10))
למעשה, מה שאתה מזמין למתורגמן הוא שהמספר שנוצר שלך הוא תמיד% המודול (שארית החלוקה) של המספר הבא, בדוגמה זו, 10.
כל מספר המחולק ב- 10 לעולם לא ייתן כשאר דבר גדול מהמחלק עצמו.
הבעיה היא שהוא גם לא ייתן את אותו המספר, מכיוון שחלוקה ב- 0 אינה הגיונית עבור המתורגמן.
משמעות הדבר היא כי הד $ (($ RANDOM% 10) ייתן תוצאות בין 0 ל 9, אך לעולם לא 10.
הפתרון לסכסוך זה הוא להוסיף אחד למגבלה שלך, כך שאותו מספר ייפול בטווח האקראי.
הד $ (($ RANDOM% 11))
זה ייתן תוצאות בין 0 ל -10.
ברכה.
שלום, בדיוק בניתי משהו כזה, אבל נתקלתי בבעיה.
אני רוצה ליצור 6 מספרים שונים מ-00 עד 45 אבל לא לחזור עליהם.
echo $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($RANDOM%46)) $(($ RANDOM%46))
דוגמה: 17 33 16 36 45 27