आप bash प्रॉम्प्ट पर आसानी से एक यादृच्छिक संख्या उत्पन्न कर सकते हैं, जिसे आप तब उस संख्या को एक चर के रूप में सेट करने के लिए उपयोग कर सकते हैं। यह कुछ प्रकार के स्क्रिप्ट लिखने से लेकर टेबलटॉप रोलप्लेइंग एडवेंचर चलाने तक हर चीज के लिए उपयोगी है। चाहे आप D&D अभियान लिख रहे हों या शक्तिशाली bash भाषा में एक उपयोगिता लिख रहे हों, आप आमतौर पर कोड की एक पंक्ति से बच सकते हैं। यह कुछ सुरक्षा जांच करने का प्रयास करते समय भी एक बहुत उपयोगी टूल है, लेकिन आप याद रखना चाहेंगे कि अच्छे क्रैकर इन सरल संख्या जनरेटर को दरकिनार कर सकते हैं। वे अभी भी कुछ प्रकार के पासवर्ड और कोड उत्पन्न करने के लिए उपयोगी हैं, जो चीजों को सुरक्षित रखने में मदद कर सकते हैं।
इसे पूरा करने के कुछ अलग तरीके हैं, और हर तकनीक हर स्थिति के लिए सही नहीं है, इसलिए हमने प्रत्येक तरीके को देखने और यह सुनिश्चित करने के लिए परीक्षण किया कि यह काम करता है। आपको इसके लिए टर्मिनल से काम करने की आवश्यकता होगी, इसलिए या तो Ctrl+Alt+T या Super (Windows)+T का उपयोग करके एक ग्राफिकल टर्मिनल खोलें, डैश में टर्मिनल टाइप करके एक शुरू करें, इसे एप्लिकेशन या व्हिस्कर और सिस्टम टूल्स मेनू से चुनें या Ctrl, Alt और F1 और F6 के बीच की कुंजी का उपयोग करके एक वर्चुअल टर्मिनल पर जाएं।
विधि 1: एक पूर्ण यादृच्छिक बाइट चुनना
आप निम्न कमांड को सीधे bash प्रॉम्प्ट से चलाकर 1 और 256 के बीच एक यादृच्छिक संख्या उत्पन्न कर सकते हैं:
od -An -N1 -tu1 /dev/urandom
जबकि आप कभी-कभी इस कमांड को /dev/random के बजाय /dev/urandom के संदर्भ में देख सकते हैं, आप शायद इस तरह से नहीं चलाना चाहेंगे। यह अनजाने में अन्य प्रोग्राम को आपके उपयोग के दौरान यादृच्छिक बीज जनरेटर का उपयोग करने से रोक सकता है। एक बार जब आप प्रोग्राम चला लेते हैं और एक संख्या प्राप्त कर लेते हैं, तो आप सुनिश्चित हो सकते हैं कि यह इस तरह भी काम करेगा:
ranNum=$(($(od -An -N1 -tu1 /dev/urandom)))
यह ranNum चर को उस समय आपके द्वारा चलाए जाने पर 1 और 256 के बीच चयनित एक संख्या पर सेट करेगा। आप इसे कमांड लाइन से या स्क्रिप्ट के अंदर से चला सकते हैं और यह किसी भी तरह से काम करना चाहिए। ध्यान रखें कि आप ranNum को किसी भी वैध चर नाम से बदल सकते हैं।
विधि 2: एक चर को 1 और जो भी के बीच एक यादृच्छिक संख्या पर सेट करना
आप कमांड लाइन से echo $[RANDOM%40+1] चलाकर 1 और 40 के बीच एक यादृच्छिक संख्या सीधे मानक आउटपुट पर भेज सकते हैं, लेकिन आप कमांड में 40 को वस्तुतः किसी भी संख्या से बदल सकते हैं। अंततः आपके होस्ट मशीन की वास्तुकला अंकों से बाहर हो जाएगी या शायद bash हो जाएगी, लेकिन यह संदिग्ध है कि आपको इतनी उच्च संख्या की आवश्यकता है वैसे भी।
मान लें कि आप अपने चर कॉन्फ़िगरेशन के लिए 1 और 10 के बीच एक यादृच्छिक संख्या उत्पन्न करना चाहते हैं। आप चला सकते हैं:
ranNum=$[RANDOM%10+1]
ध्यान रखें कि आप 10 को किसी भी ऊपरी मान से बदल सकते हैं जो आप चाहते हैं। यह मान समावेशी है, जिसका अर्थ है कि 10 एक वैध वापस की गई संख्या है। यदि आप इसे एक से कम करना चाहते थे, तो बस C या C++ शैली -1 गणित का उपयोग करने के बजाय मान 9 बनाएं। ये इस पद्धति का उपयोग करके एक चर सेट करते समय अनावश्यक हैं, और वे वास्तव में अंकों को जोड़ या घटाकर अप्रत्याशित परिणाम उत्पन्न करेंगे।
विधि 3: एक एकल यादृच्छिक बिट चुनना
यदि आपको एक चर को शून्य या एक के यादृच्छिक बिट पर सेट करने की आवश्यकता है, तो आप पिछले कोड को निम्नानुसार संशोधित कर सकते हैं:
ranNum=$(($(od -An -N1 -i /dev/urandom) % 2))
यह कोड ranNum को 1 या 0 पर सेट करेगा यह इस बात पर निर्भर करता है कि /dev/urandom फ़ाइल से नमूना ली गई संख्याएं सम थीं या विषम। यह उपयोगी हो सकता है यदि आपको एक साधारण हां या नहीं समीकरण को एक या दूसरी स्थिति में सेट करने की आवश्यकता है।
यदि यह आपके काम के लिए पर्याप्त रूप से यादृच्छिक नहीं है, तो आप /proc/sys/kernel/random डायरेक्टरी को कॉल करके थोड़ा अधिक यादृच्छिक संख्या प्राप्त कर सकते हैं:
ranNum=$((0x$(cut -c1-1 /proc/sys/kernel/random/uuid) % 2))
एक बार फिर, हालांकि, यह चर को केवल 1 या 0 पर सेट करेगा, जो बाइनरी तर्क के लिए एकदम सही है लेकिन उन समयों के लिए उतना उपयोगी नहीं है जब आपको एक लंबी संख्या की आवश्यकता हो। आप इनमें से किसी भी लाइन का उपयोग bash स्क्रिप्ट में कर सकते हैं यदि आपको ऐसा करने की कोई आवश्यकता थी। यह दूसरा विकल्प वास्तव में उन स्थितियों के लिए बेहतर हो सकता है जहां पहला विफल होता है।
विधि 4: यादृच्छिक संख्या वापस करने के लिए bash स्क्रिप्ट लिखना
यदि आप किसी भी समय यादृच्छिक संख्या उत्पन्न करने के लिए एक आसान टूल चाहते हैं, तो आप ऐसा करने के लिए एक कमांड लाइन स्क्रिप्ट बना सकते हैं। यह मानक bash भाषा से अधिक कुछ नहीं उपयोग करता है जो अधिकांश आधुनिक लिनक्स प्रॉम्प्ट में है, इसलिए बहुत अधिक कोई भी आधुनिक लिनक्स वितरण और काफी कुछ BSD-आधारित ऑपरेटिंग सिस्टम इसे ठीक से संभालना चाहिए। आप cd ~/.local/bin का उपयोग करके आगे बढ़ने से पहले यह सुनिश्चित करना चाह सकते हैं कि आपकी स्क्रिप्ट ऐसी जगह पर होगी जहां से आप इसे कहीं से भी निष्पादित कर सकते हैं।
शुरू करने के लिए nano random या vi random टाइप करें, हालांकि आप अपनी स्क्रिप्ट के लिए एक अलग नाम का उपयोग कर सकते हैं यदि आप चाहें। आप एक अलग टेक्स्ट एडिटर का भी उपयोग कर सकते हैं यदि आप पसंद करते हैं। मान लें कि आप एक बनाना चाहते हैं जो कमांड लाइन पर टाइप किए जाने पर 1 या 0 वापस करे। निम्नलिखित दर्ज करें और फिर यदि आप nano का उपयोग कर रहे हैं तो इसे सेव करने के लिए Ctrl+O दबाएं:
#!/bin/bash ranNum=$(($RANDOM % 2)) echo $ranNum
टेक्स्ट एडिटर से बाहर निकलने के लिए Ctrl+X टाइप करें और एक बार कमांड लाइन पर वापस आने पर अपने स्क्रिप्ट को उपयोग योग्य बनाने के लिए chmod +x random का उपयोग करें। आप निश्चित रूप से ranNum=$[RANDOM%10+1], ranNum=$(($(od -An -N1 -tu1 /dev/urandom))) या किसी अन्य लाइन का उपयोग ranNum=$(($RANDOM % 2)) के स्थान पर कर सकते हैं ताकि आप ठीक से नियंत्रित कर सकें कि आप किस प्रकार की संख्या वापस चाहते हैं। मान लें कि आप नियमित रूप से 1 और 50 के बीच एक संख्या का चयन करना चाहते थे। bash स्क्रिप्ट के टेक्स्ट को बदलें:
#!/bin/bash ranNum=$[RANDOM%50+1] echo $ranNum
अब आप कमांड लाइन से random टाइप करके इसे आसानी से चला सकते हैं जब भी आप एक यादृच्छिक संख्या उत्पन्न करना चाहें।