Så här ställer du in bash-variabler till slumpmässiga nummer
Du kan enkelt generera ett slumptal vid bash-prompten, som du då kan använda för att ställa in nämnda nummer som en variabel. Det här är användbart för allt från att skriva vissa typer av skript till löpande bordspel rollspelande äventyr. Oavsett om du kanske skriver en D & D-kampanj eller skapar ett verktyg i det kraftfulla bash-språket, kan du vanligtvis komma undan med en enda kodrad. Det här är också ett mycket användbart verktyg när du försöker förbereda vissa säkerhetskontroller, men du kommer att vilja komma ihåg att bra krackare kan kringgå dessa enkla nummergeneratorer. De är fortfarande användbara för att generera vissa typer av lösenord och kod, vilket kan hjälpa till att hålla saker säkert ändå.
Det finns några olika sätt att uppnå detta, och inte alla tekniker är korrekta för varje situation, så vi gjorde vårt bästa för att ta en titt på varje väg och testa den för att säkerställa att den fungerade. Du måste arbeta från en terminal för detta, så använd antingen Ctrl + Alt + T eller Super (Windows) + T för att öppna en grafisk terminal, starta en genom att skriva terminalen i Dash, välj den från Application eller Whisker och systemverktyg menyer eller gå till en virtuell terminal i allihop genom att använda Ctrl, Alt och en nyckel mellan F1 och F6.
Metod 1: Plocka en Full Random Byte
Du kan generera ett slumptal mellan 1 och 256 genom att köra följande kommando direkt från bash-prompten:
od -An -Nl-tu1 / dev / urandom
Medan du kanske ser det här kommandot ibland hänvisat till / dev / random i stället för / dev / urandom, kommer du antagligen inte vilja springa så här. Detta kan oavsiktligt beröva andra program från att kunna använda slumpmässig frögenerator under din användning av den. När du har kört programmet och fått ett nummer kan du vara säker på att det kommer att fungera på så sätt också:
ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom)))
Detta ställer variabeln ranNum till ett tal mellan 1 och 256, valt vid den tidpunkt du kör det. Du kan köra den från kommandoraden eller från insidan av ett manus och det ska fungera på något sätt. Tänk på att du kan ersätta ranNum med något giltigt variabelnamn.
Metod 2: Ställ in en variabel till ett slumptal mellan 1 och vad som helst
Du kan köra echo $ [RANDOM% 40 + 1] från kommandoraden för att skicka ett slumptal mellan 1 och 40 direkt till standardutmatningen, men du kan också ersätta 40 i kommandot med nästan vilket nummer som helst. Så småningom kommer din värdmaskinens arkitektur att gå tom för siffror eller kanske bash will, men det är tveksamt att du behöver ett så högt tal ändå.
Låt oss anta att du skulle vilja skapa ett slumptal mellan 1 och 10 för din variabla konfiguration. Du kan springa:
PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka härranNum = $ [RANDOM% 10 + 1]
Tänk på att du kan ersätta 10 med vilket övre värde du vill ha. Detta värde är inkluderande, vilket betyder att 10 är en giltig returfigur. Om du ville minska det med en, gör du bara värdet 9 istället för att använda C eller C ++ style -1 matematik. Dessa är onödiga när du ställer in en variabel med den här metoden, och de kommer faktiskt att generera oväntade resultat genom att lägga till eller subtrahera siffror.
Metod 3: Välja en enkel slumpmässig bit
Om du behöver ange en variabel till en slumpmässig bit av antingen noll eller en, kanske du vill ändra tidigare kod enligt följande:
ranNum = $ (($ (od -An -N1 -i / dev / urandom)% 2))
Denna kod kommer att ange ranNum till antingen 1 eller 0 beroende på om siffrorna som den samplade från filen / dev / urandom var jämn eller udda. Detta kan vara användbart om du behöver ange en enkel ja eller ingen ekvation till en eller annan stat.
Om detta inte är tillräckligt slumpmässigt för det du jobbar med, kan du få ett lite mer slumpmässigt nummer genom att ringa till / proc / sys / kärna / slumpmässig katalog med:
ranNum = $ ((0x $ (cut -c1-1 / proc / sys / kernel / random / uuid)% 2))
Än en gång kommer det här bara att ställa in variabeln till 1 eller 0, vilket är perfekt för binär logik men inte lika användbart för tider när du kanske behöver ett längre nummer. Du kan dock använda någon av dessa rader i ett bash script om du hade något behov av att göra det. Det här alternativet kan faktiskt vara bättre för situationer där den första misslyckas också
Metod 4: Författande bash Skript för att returnera slumptal
Om du vill ha ett användbart verktyg för att generera ett slumpmässigt nummer när som helst kan du skapa ett kommandoradsskript för att göra det. Detta använder inte mer än det standardbash-språket som är mest moderna Linux-prompter har, så ganska mycket, någon modern Linux-distribution och ett flertal av de BSD-baserade operativsystemen ska hantera det här bara bra. Du kanske vill använda cd ~ / .local / bin innan du går längre för att se till att du får ditt skript på en plats där du kan exekvera det från var som helst.
Skriv nano slumpmässigt eller vi slumpmässigt för att börja, men du kan använda ett annat namn för ditt manus om du vill. Du kan också använda en annan textredigerare om du föredrar det. Säg att du ville skapa en som skulle returnera antingen 1 eller 0 när du skrev på kommandoraden. Ange följande och tryck sedan Ctrl + O för att spara det om du använder nano:
#! / bin / bash ranNum = $ (($ RANDOM% 2)) echo $ ranNum
Skriv Ctrl + X för att lämna textredigeraren och en gång tillbaka på kommandoraden använd chmod + x slumpmässigt för att göra ditt skript användbart. Du kan självklart använda ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) eller någon annan rad i stället för ranNum = $ ( RANDOM% 2)) så att du kan styra exakt vilken typ av nummer du vill ha tillbaka. Låt oss säga att du ville välja ett nummer mellan 1 och 50 regelbundet. Ändra bash script-text till:
#! / bin / bash ranNum = $ [RANDOM% 50 + 1] echo $ ranNum
Du kan nu enkelt köra den från kommandoraden genom att skriva slumpmässigt när du vill skapa ett slumptal.
PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här