Tjek først den grundlæggende syntaks for "læs" -kommandoen:
læs variablen [option]Brug af "læs" -kommandoen betyder, at du interagerer med Bash for at få oplysninger fra brugeren. Det gemmer værdien i en variabel, men uden “$" skilt. Du vil være i stand til bedre at forstå dette koncept med et eksempel.
Eksempel 1: Brug af "læs" kommandoen i et Bash-script
For at undersøge "læs" -kommandoen mere dybtgående opretter vi et simpelt script, der beder om brugerens navn. Åbn først en hvilken som helst teksteditor; til denne vejledning bruger jeg Vim-teksteditoren på grund af dens mange nyttige funktioner. For at installere Vim skal du udføre følgende kommando i terminalen:
$ sudo apt install vimSkriv derefter følgende i tekstfilen:
#! \ bin \ bashekko "Indtast dit navn"
læse navn
ekko “Dit navn er” $ name
Gem filen med et hvilket som helst navn, og tryk derefter på Esc og skriv “: w readcom.sh.”Udfør følgende kommando for at køre scriptet:
$ bash readcom.shOvenstående script beder brugeren om at skrive sit navn. Kommandoen “læs” gemmer derefter brugerens input. Den næste linje udskriver det navn, som brugeren indtaster.
Eksempel 2: Forenkling af kode ved hjælp af "prompt" -operatøren
Ovenstående eksempel kan forenkles yderligere ved hjælp af “hurtig”Operatør. Lad os omskrive ovenstående eksempel for at forstå koden:
#! / bin / bashlæs -p "Indtast dit navn" navn
ekko “Dit navn er” $ name
Eksempel 3: Skjul brugerinput ved hjælp af "hemmelig / lydløs" operatør
Det "-s”Flag kan bruges til at skjule brugerens input. Følgende eksempel på Bash-script viser dig, hvordan du bruger operatoren “-s”:
#! / bin / bashlæs -p “Indtast venligst dit brugernavn” brugernavn
læs -s -p “Indtast venligst din adgangskode” $ adgangskode
Eksempel 4: Begrænsning af tegnlængden
Det "-n”Flag kan bruges til at tilføje en begrænsning for antallet af tegn, som brugeren kan indtaste.
#!/ bin / bashlæs -n 8 -p “Indtast dit brugernavn, der ikke overstiger 8 tegn” brugernavn
ekko "Dit brugernavn er" $ brugernavn
Med indstillingen “-n” kan brugeren stadig skrive mindre end otte tegn. For yderligere at begrænse inputlængden skal “-N”-Flag kan bruges, hvilket begrænser brugerens svar til nøjagtigt otte tegn.
Eksempel 5: Få input i en matrix
Brugerindgangen kan også tages i en matrix med “--en”Flag. For eksempel for at få brugerens navn, alder og e-mail-adresse på én gang, så kan vi bruge en matrix. Lad os se på et eksempel:
#! / bin / bashekko "Indtast dit navn, alder og e-mail"
læs -en matrixnavn alder e-mail
ekko "Dit navn, alder og e-mail-adresse er: $ array [@] navn alders-e-mail"
ekko "Dit navn og alder er: $ array [@]: 0: 1 navn alder"
ekko "Din e-mail-adresse er: $ array [2] e-mail"
- "$ Array [@]" vil løbe gennem alle variabler.
- For at gentage indekserne 0 til 1 skal du bruge “$ array [@]: 0: 1” med variabelnavne.
- For at opnå værdien af en bestemt variabel ved et bestemt indeks skal du bruge “$ array [2]” med variabelnavnet.
Eksempel 6: Tilføjelse af en timeout til "læs" -kommandoen
Som navnet på kommandoen indikerer, kan en timeout tilføjes som en betingelse for læsning af koden ved hjælp af “-t” -flagget, hvilket får brugeren til at indtaste information i et bestemt tidspunkt. Ellers flytter programmet til den næste kodelinje.
#! \ bin \ bashekko ”Hvad er Japans hovedstad? Svar på 5 sekunder ”
læs -t 5 svar
hvis [“$ answer” = “tokyo”] || [“$ Answer” = “Tokyo”];
derefter
ekko “Dit svar er korrekt!”
andet
ekko “Dit svar er forkert!”
fi
Konklusion
At få input fra en brugerindgang er en af de vigtigste dele af programmeringen, hvilket gør dine programmer mere interaktive. Denne artikel viste dig, hvordan du bruger kommandoen “læs”, en af nøglekommandoer i Bash-scripting. I denne artikel lærte du om nogle af de forskellige tilgange, som du kan bruge med kommandoen "læs", fra grundlæggende flagoperatører til avancerede operatører.