(ബാഷ്): റാൻഡം നമ്പർ സൃഷ്ടിക്കുന്നതിനുള്ള കമാൻഡ്

ചിലപ്പോൾ, ഞങ്ങൾ ചില സ്ക്രിപ്റ്റുകൾ പ്രോഗ്രാം ചെയ്യുന്നു ബാഷ് …. ചില ക്രമരഹിതമായ സംഖ്യ സൃഷ്ടിക്കാൻ ഞങ്ങൾക്ക് (ചില കാരണങ്ങളാൽ) ആവശ്യമാണ്.

അതിനായി നിങ്ങൾക്ക് ഒരു മുഴുവൻ ആപ്ലിക്കേഷനും പ്രോഗ്രാം ചെയ്യാൻ കഴിയും (അല്ലെങ്കിൽ ഫംഗ്ഷൻ ...) അതെ, പക്ഷേ ... ക uri തുകകരമായി ഞങ്ങളുടെ സിസ്റ്റം ഇതിനകം തന്നെ അത് ചെയ്തു

ഒരു ടെർമിനലിൽ, ഇനിപ്പറയുന്നവ ടൈപ്പുചെയ്ത് അമർത്തുക [നൽകുക]:

എക്കോ $ റാൻഡം

... ഒരു സംഖ്യ ദൃശ്യമാകും, അവർ വീണ്ടും അതേ കാര്യം ചെയ്യുന്നു, മറ്റൊരു നമ്പർ ദൃശ്യമാകും, അങ്ങനെ

ഇത് ചെയ്യുന്നത് 0 നും 32768 നും ഇടയിലുള്ള ഒരു റാൻഡം നമ്പർ (ഏതെങ്കിലും) കാണിക്കുന്നു (പൂർണ്ണസംഖ്യ, അതായത്, കോമ ഇല്ലാതെ).

നിങ്ങൾക്ക് ഇത് ഒരു റാൻഡം നമ്പറായിരിക്കണമെങ്കിൽ, 0 നും ... നും ഇടയിൽ ... നമുക്ക് 100 എന്ന് പറയാം, നിങ്ങൾക്ക് ആ പരിധി അതിൽ ഉൾപ്പെടുത്താം

എക്കോ $ (($ RANDOM% 100%))

അതേ, മറ്റൊരു ഉദാഹരണം ... ഇത് 0 നും 29 നും ഇടയിലുള്ള ഒരു സംഖ്യയാകണമെങ്കിൽ ഇത് ഇതായിരിക്കും:

എക്കോ $ (($ RANDOM% 29%))

അത് മനസ്സിലാകുന്നില്ലേ? 😀

അവർ ചെയ്യുന്ന ഒരു ബാഷ് സ്ക്രിപ്റ്റിൽ അവർ അത് ഉപയോഗിക്കുകയാണെങ്കിൽ, ജനറേറ്റുചെയ്ത മൂല്യം (ഒരു റാൻഡം നമ്പർ) ഒരു വേരിയബിളിന് നൽകുന്നതിന്:

വേരിയബിൾ = `എക്കോ $ (($ റാൻഡം))`

ശരി, ഇത് ഇതാണ്, എനിക്ക് നിങ്ങളെക്കുറിച്ച് അറിയില്ല ... പക്ഷെ ഇത് ഒരു ഘട്ടത്തിൽ എനിക്ക് ഉപകാരപ്പെടുമെന്ന് എനിക്കറിയാം.

നന്ദി!


ലേഖനത്തിന്റെ ഉള്ളടക്കം ഞങ്ങളുടെ തത്ത്വങ്ങൾ പാലിക്കുന്നു എഡിറ്റോറിയൽ എത്തിക്സ്. ഒരു പിശക് റിപ്പോർട്ടുചെയ്യാൻ ക്ലിക്കുചെയ്യുക ഇവിടെ.

10 അഭിപ്രായങ്ങൾ, നിങ്ങളുടേത് വിടുക

നിങ്ങളുടെ അഭിപ്രായം ഇടുക

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിച്ചു ചെയ്യില്ല.

*

*

  1. ഡാറ്റയുടെ ഉത്തരവാദിത്തം: മിഗുവൽ ഏഞ്ചൽ ഗാറ്റൻ
  2. ഡാറ്റയുടെ ഉദ്ദേശ്യം: സ്പാം നിയന്ത്രിക്കുക, അഭിപ്രായ മാനേജുമെന്റ്.
  3. നിയമസാധുത: നിങ്ങളുടെ സമ്മതം
  4. ഡാറ്റയുടെ ആശയവിനിമയം: നിയമപരമായ ബാധ്യതയല്ലാതെ ഡാറ്റ മൂന്നാം കക്ഷികളുമായി ആശയവിനിമയം നടത്തുകയില്ല.
  5. ഡാറ്റ സംഭരണം: ഒസെന്റസ് നെറ്റ്‌വർക്കുകൾ (ഇയു) ഹോസ്റ്റുചെയ്യുന്ന ഡാറ്റാബേസ്
  6. അവകാശങ്ങൾ: ഏത് സമയത്തും നിങ്ങളുടെ വിവരങ്ങൾ പരിമിതപ്പെടുത്താനും വീണ്ടെടുക്കാനും ഇല്ലാതാക്കാനും കഴിയും.

  1.   ഓസ്കാർ പറഞ്ഞു

    ശരി, ഞാൻ ഇത് പരീക്ഷിച്ചു കൊണ്ടിരിക്കുകയാണ്, അത് 4 അക്ക നമ്പർ മാത്രമേ നൽകുന്നുള്ളൂ, എനിക്ക് ഇത് എങ്ങനെ വലുതാക്കാനാകും?
    വളരെ രസകരമായ നുറുങ്ങ്, നന്ദി.

    1.    KZKG ^ Gaara പറഞ്ഞു

      0 നും 32768 നും ഇടയിലുള്ള ഒരു നമ്പർ നൽകുന്നു, എനിക്ക് വലിയ സംഖ്യകൾ നേടാനായില്ല.

  2.   ജോസ് പറഞ്ഞു

    അതിന് exadecimals സൃഷ്ടിക്കാൻ കഴിയുമോ ????

  3.   കാക്ക പറഞ്ഞു

    വേരിയബിൾ = `എക്കോ $ (($ റാൻഡം))`

    റാൻഡം ഒരു വേരിയബിളാണെന്നും നിങ്ങൾക്ക് ഇത് ചെയ്യാനാകുമെന്ന ലളിതമായ കാരണത്താൽ ഇത് പ്രവർത്തിക്കുന്നു, പക്ഷേ അനുയോജ്യമല്ല
    വേരിയബിൾ = $ RANDOM
    അത്രമാത്രം! ഒരു ടെർമിനൽ ആപ്രേറ്റിൽ എക്കോ പ്രവർത്തിപ്പിക്കരുത് (അതാണ് നിങ്ങൾ ചെയ്യുന്നത്)

    1.    KZKG ^ Gaara പറഞ്ഞു

      അതെ, വ്യക്തമായും ഇത് ഇതുപോലെ നേടാൻ കഴിയും… ഒരേയൊരു വ്യത്യാസം പിന്നീട്, വേരിയബിൾ എടുത്ത നമ്പർ കാണാൻ (ഉപയോക്താവ് ഒരു ess ഹക്കച്ചവടക്കാരനല്ലാത്തതിനാൽ), ഒരു എക്കോ ചെയ്യേണ്ടത് ആവശ്യമാണ്…. അവസാനം, ഞാൻ ഇവിടെ ചെയ്യുന്നത് തുടക്കം മുതൽ എക്കോ ചെയ്യുക (ഉപയോക്താവിന് എന്ത് നമ്പറാണ് എടുത്തതെന്ന് കാണാൻ കഴിയും).

      ഞാൻ എന്നെത്തന്നെ മനസ്സിലാക്കുന്നുണ്ടോ? 🙂

  4.   വുൾമർ ബൊളിവർ പറഞ്ഞു

    ഒരു റാൻഡം നമ്പർ സൃഷ്ടിക്കുന്നതിനുള്ള മറ്റൊരു മാർഗ്ഗം, ഈ സമയം ഇത് ഈ കമാൻഡായിരിക്കുമെങ്കിലും:

    തീയതി "+% N" | കട്ട്-സി 9

    അത് 9 അക്കങ്ങളുള്ള നാനോസെക്കൻഡിൽ തീയതി നൽകും. ഞങ്ങൾക്ക് ഒരൊറ്റ കണക്ക് വേണമെങ്കിൽ നിങ്ങൾ "കട്ട്-സി 9" ഇടുക (അവസാന ചിത്രം എല്ലായ്പ്പോഴും കൂടുതൽ ക്രമരഹിതമാണ്, കാരണം ഇത് സംഖ്യയിലെ ഏറ്റവും ചെറുതാണ്). ഞങ്ങൾക്ക് 2 കണക്കുകൾ വേണമെങ്കിൽ "കട്ട് - സി 8,9" ഇടുക. ഞങ്ങൾക്ക് മൂന്ന് കണക്കുകൾ വേണമെങ്കിൽ "കട്ട്-സി 7-9" (ഞങ്ങൾ ഹൈഫൺ ഉപയോഗിക്കാൻ തുടങ്ങുന്നു).

    ചുരുങ്ങിയ സമയത്തിനുള്ളിൽ തുടർച്ചയായി നിരവധി റാൻഡം നമ്പറുകൾ നേടാൻ ഞങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ ഇതിനെക്കുറിച്ചുള്ള ഒരേയൊരു മോശം കാര്യം, കാരണം ഇത് ഒരു സമയത്തെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു റാൻഡം നമ്പറാണ്. അതായത്, ആ കമാൻഡ് ഉപയോഗിച്ച് ഞങ്ങൾ ഒരു ഫോർ ഉണ്ടാക്കിയാൽ നമുക്ക് അത് കാണാൻ കഴിയും:

    se എനിക്കായി `സെക് 1 1 500`; തീയതി "+% N"; ചെയ്‌തു

    പങ്ക് € |
    പങ്ക് € |
    പങ്ക് € |

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

    പങ്ക് € |
    പങ്ക് € |
    പങ്ക് € |

    ഇത് വ്യക്തമാണെന്ന് ഞാൻ കരുതുന്നു? ഇടത് വശത്തെ കണക്കുകൾ ചുരുങ്ങിയ സമയത്തിനുള്ളിൽ കൂടുതൽ സമാനമാണ്, തീർച്ചയായും, വലതുവശത്തുള്ളവ കൂടുതൽ “ക്രമരഹിതം” ആണ്.

  5.   കറുത്ത കണ്ണ് പറഞ്ഞു

    എംഎംഎം…. എനിക്ക് ഇത് ഇഷ്‌ടപ്പെട്ടു, എനിക്ക് ഒരു മിനി സ്‌ക്രിപ്റ്റ് ഉണ്ട്, റാൻഡം നമ്പറുകൾ സൃഷ്‌ടിക്കുന്നതിന് ഇത് വരച്ചിട്ടുണ്ട്, നന്ദി.

  6.   G. പറഞ്ഞു

    ഇത് സേവിക്കുന്നു .. കൂടാതെ ഒരുപാട് ..
    പ്രത്യേകിച്ചും നിങ്ങൾ പാസ്‌വേഡ്, സുരക്ഷ മുതലായവ ഉപയോഗിച്ച് ഒരു ഇന്റർഫേസ് ബാഷിൽ പ്രോഗ്രാം ചെയ്യുകയാണെങ്കിൽ.
    മികച്ച ആപ്രോട്ട്.

  7.   ഹോസ് അന്റോണിയോ ബെന്റിനെ പിന്തുടർന്നു പറഞ്ഞു

    ഹായ്!
    ഒന്നാമതായി, തീർച്ചയായും, ഞാൻ വളരെക്കാലമായി പിന്തുടരുന്ന ഈ മികച്ച വെബ്‌സൈറ്റിന് അഭിനന്ദനങ്ങൾ.
    രണ്ടാമതായി, ഈ എൻ‌ട്രിയിലേക്ക് ഒരു ചെറിയ കുറിപ്പ് തയ്യാറാക്കുക:
    പരിമിതപ്പെടുത്തുന്നത് ഇതുപോലെ ചെയ്യുമ്പോൾ:

    എക്കോ $ (($ RANDOM% 10%))

    വാസ്തവത്തിൽ, നിങ്ങൾ വ്യാഖ്യാതാവിനോട് ഓർഡർ ചെയ്യുന്നത് നിങ്ങളുടെ ജനറേറ്റുചെയ്ത നമ്പർ എല്ലായ്പ്പോഴും തുടർന്നുള്ള സംഖ്യയുടെ മൊഡ്യൂളസ്% (ഡിവിഷന്റെ ബാക്കി) ആണ്, ഈ ഉദാഹരണത്തിൽ, 10.
    10 കൊണ്ട് ഹരിക്കപ്പെടുന്ന ഏതൊരു സംഖ്യയും ഹരണത്തെക്കാൾ വലിയത് ഒരിക്കലും നൽകില്ല.
    ഒരേ സംഖ്യ നൽകില്ല എന്നതാണ് പ്രശ്‌നം, കാരണം 0 കൊണ്ട് ഹരിക്കൽ വ്യാഖ്യാതാവിന് യുക്തിസഹമല്ല.

    ഇതിനർത്ഥം എക്കോ $ (($ 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