Sådan sættes bash-variabler til tilfældige tal
Du kan nemt generere et tilfældigt tal ved bash-prompten, som du derefter kan bruge til at indstille nummeret som en variabel. Dette er nyttigt for alt fra at skrive bestemte typer af scripts til at køre tabletop rollespilende eventyr. Uanset om du måske skriver en D & D-kampagne eller forfatter et værktøj i det stærke bash-sprog, kan du som regel komme væk med en enkelt kodekode. Dette er også et meget nyttigt værktøj, når du forsøger at præforme bestemte sikkerhedskontroller, men du vil gerne huske at gode crackere kan omgå disse enkle nummergeneratorer. De er stadig nyttige til at generere bestemte typer adgangskoder og kode, hvilket kan medvirke til at holde tingene sikkert alligevel.
Der er et par forskellige måder at opnå dette på, og ikke alle teknikker passer til enhver situation, så vi gjorde vores bedste for at kigge på hver vej og afprøvede det for at sikre det fungerede. Du skal bruge en terminal til dette, så brug enten Ctrl + Alt + T eller Super (Windows) + T for at åbne en grafisk terminal, start en ved at skrive terminal i Dash, vælg den fra Application eller Whisker og systemværktøjer menuer eller hoved til en virtuel terminal i alvorlig ved at bruge Ctrl, Alt og en nøgle mellem F1 og F6.
Metode 1: Plukker en fuld tilfældig byte
Du kan generere et tilfældigt tal fra mellem 1 og 256 ved at køre følgende kommando direkte fra bash-prompt:
od -An -N1 -tu1 / dev / urandom
Mens du måske nogle gange ser denne kommando henvist til / dev / random i stedet for / dev / urandom, vil du sandsynligvis ikke køre på denne måde. Dette kan utilsigtet røve andre programmer fra at kunne bruge den tilfældige frøgenerator under din brug af den. Når du har kørt programmet og fået et nummer, kan du være sikker på, at det også fungerer på denne måde:
ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom)))
Dette vil indstille variabel ranNum til et tal mellem 1 og 256, valgt på det tidspunkt, du kører det. Du kan køre det fra kommandolinjen eller indefra af et script, og det skal fungere på begge måder. Husk, at du kan erstatte ranNum med et gyldigt variabelnavn.
Metode 2: Indstilling af en variabel til et tilfældigt tal mellem 1 og uanset
Du kan køre ekko $ [RANDOM% 40 + 1] fra kommandolinjen for at sende et tilfældigt tal mellem 1 og 40 lige til standard output, men du kan også erstatte 40 i kommandoen med stort set et hvilket som helst nummer. Til sidst vil din værtsmaskinens arkitektur løbe tør for cifre eller måske bash vilje, men det er tvivlsomt, at du har brug for et så højt tal alligevel.
Lad os antage, at du gerne vil generere et tilfældigt tal mellem 1 og 10 for din variabelkonfiguration. Du kan køre:
PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke herranNum = $ [RANDOM% 10 + 1]
Husk på, at du kan erstatte 10 med hvilken som helst øvre værdi, du vil have. Denne værdi er inklusiv, hvilket betyder at 10 er et gyldigt returneret tal. Hvis du ønskede at reducere det med en, skal du blot gøre værdien 9 i stedet for at bruge C eller C ++ style -1 matematik. Disse er unødvendige, når du indstiller en variabel ved hjælp af denne metode, og de vil faktisk generere uventede resultater ved at tilføje eller subtrahere cifre.
Metode 3: Valg af en enkelt tilfældig bit
Hvis du har brug for at indstille en variabel til en tilfældig bit på enten nul eller en, kan du måske ændre den forrige kode som følger:
ranNum = $ (($ (od -An -N1 -i / dev / urandom)% 2))
Denne kode indstiller løbNum til enten 1 eller 0 afhængigt af om de tal, som den samplede fra filen / dev / urandom filen, var lige eller ulige. Dette kan være nyttigt, hvis du skal indstille en simpel ja eller ingen ligning til en eller anden stat.
Hvis dette ikke er tilstrækkeligt tilfældigt til det, du arbejder på, kan du få et lidt mere tilfældigt tal ved at ringe til / proc / sys / kerne / tilfældig mappe med:
ranNum = $ ((0x $ (cut -c1-1 / proc / sys / kernel / random / uuid)% 2))
Endnu en gang vil dette dog kun indstille variablen til 1 eller 0, hvilket er perfekt til binær logik, men ikke så nyttig til tider, hvor du måske har brug for et længere nummer. Du kan dog bruge nogen af disse linjer i et bash script, hvis du havde brug for det. Denne anden mulighed kan faktisk være bedre for situationer, hvor den første også fejler
Metode 4: Authoring bash Scripts for at returnere tilfældige tal
Hvis du vil have et praktisk værktøj til at generere et tilfældigt tal til enhver tid, kan du oprette et kommandolinjeskript for at gøre det. Dette bruger intet mere end standard bash sprog mest moderne Linux prompts har, så stort set enhver moderne Linux distribution og ganske få af de BSD-baserede operativsystemer bør håndtere dette helt fint. Du kan ønske at bruge cd ~ / .local / bin, inden du går videre for at sikre, at du har dit script på et sted, hvor du kan udføre det fra hvor som helst.
Skriv nano tilfældigt eller vi tilfældigt for at begynde, selvom du kunne bruge et andet navn til dit script, hvis du vil. Du kan også bruge en anden teksteditor, hvis du foretrækker det. Sig, du ønskede at oprette en, der ville returnere enten 1 eller 0, når de blev skrevet på kommandolinjen. Indtast følgende, og tryk derefter på Ctrl + O for at gemme det, hvis du bruger nano:
#! / bin / bash ranNum = $ (($ RANDOM% 2)) ekko $ ranNum
Skriv Ctrl + X for at forlade teksteditoren og en gang tilbage på kommandolinjen brug chmod + x tilfældigt for at gøre dit script brugbart. Du kunne selvfølgelig bruge ranNum = $ [RANDOM% 10 + 1], ranNum = $ (($ (od -An -N1 -tu1 / dev / urandom))) eller en anden linje i stedet for ranNum = $ ( RANDOM% 2)), så du kunne kontrollere præcis, hvilken slags nummer du vil have tilbage. Lad os sige, at du ønskede at vælge et tal mellem 1 og 50 regelmæssigt. Skift bash scriptets tekst til:
#! / bin / bash ranNum = $ [RANDOM% 50 + 1] ekko $ ranNum
Du kan nu nemt køre det fra kommandolinjen ved at skrive tilfældigt, når du gerne vil generere et tilfældigt tal.
PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke her