Kolla först den grundläggande syntaxen för kommandot "läs":
läs [alternativ] variabelAtt använda kommandot "läs" betyder att du interagerar med Bash för att få information från användaren. Det sparar värdet i en variabel, men utan "$" tecken. Du kommer att kunna bättre förstå detta koncept med ett exempel.
Exempel 1: Använd kommandot "läs" i ett Bash-skript
För att undersöka kommandot "läs" mer ingående kommer vi att skapa ett enkelt skript som frågar efter användarens namn. Öppna först vilken textredigerare som helst; för den här guiden använder jag Vim-textredigeraren på grund av dess många användbara funktioner. För att installera Vim, kör följande kommando i terminalen:
$ sudo apt installera vimSkriv sedan in följande i textfilen:
#! \ bin \ basheko "Skriv ditt namn"
läs namn
echo “Your name is” $ name
Spara filen med vilket namn som helst och tryck sedan på Esc och skriv “: w readcom.sh.”För att köra skriptet, utfärda följande kommando:
$ bash readcom.shOvanstående skript kommer att be användaren att skriva sitt namn. Kommandot "läs" sparar sedan inmatningen från användaren. Nästa rad skriver ut namnet som användaren matar in.
Exempel 2: Förenkla koden med "prompt" -operatören
Ovanstående exempel kan förenklas ytterligare med hjälp av "prompt”Operatör. Låt oss skriva om exemplet ovan för att förstå koden:
#! / bin / bashläs -p “Vänligen skriv ditt namn” namn
echo “Your name is” $ name
Exempel 3: Dölja användarinmatningen med den "hemliga / tysta" operatören
”-s”-Flaggan kan användas för att dölja användarens inmatning. Följande Bash-skriptexempel visar hur du använder operatören “-s”:
#! / bin / bashläs -p “Vänligen skriv ditt användarnamn” användarnamn
läs -s -p “Skriv ditt lösenord” $ lösenord
Exempel 4: Begränsa teckenlängden
”-n”-Flaggan kan användas för att lägga till en begränsning för antalet tecken som användaren kan mata in.
#!/ bin / bashläs -n 8 -p “Skriv ditt användarnamn som inte överstiger 8 tecken” användarnamn
eko “Ditt användarnamn är” $ användarnamn
Med alternativet “-n” kan användaren fortfarande skriva mindre än åtta tecken. För att ytterligare begränsa ingångslängden,-N”-Flaggan kan användas, vilket begränsar användarens svar till exakt åtta tecken.
Exempel 5: Få inmatningen i en matris
Användarinmatningen kan också tas i en matris med "-a”Flagga. För att till exempel få användarens namn, ålder och e-postadress på en gång kan vi använda en matris. Låt oss titta på ett exempel:
#! / bin / basheko “Skriv ditt namn, ålder och e-postadress”
läs -en gruppnamn ålder e-post
eko "Ditt namn, ålder och e-postadress är: $ array [@] namn ålder e-postadress"
eko "Ditt namn och ålder är: $ array [@]: 0: 1 namnålder"
eko “Din e-postadress är: $ array [2] e-post”
- "$ Array [@]" kommer att gå igenom alla variabler.
- För att itera igenom index 0 till 1, använd “$ array [@]: 0: 1” med variabelnamnen.
- För att få värdet av en viss variabel vid ett visst index, använd “$ array [2]” med variabelnamnet.
Exempel 6: Lägga till en timeout till kommandot "läs"
Som namnet på kommandot indikerar kan en timeout läggas till som ett villkor för att läsa koden med "-t" -flaggan, vilket gör att användaren anger information under en viss tid. Annars flyttar programmet till nästa kodrad.
#! \ bin \ basheko ”Vad är Japans huvudstad? Svara på 5 sekunder ”
läs -t 5 svar
om [“$ answer” = “tokyo”] || [“$ Answer” = “Tokyo”];
sedan
eko ”Ditt svar är korrekt!”
annan
eko ”Ditt svar är fel!”
fi
Slutsats
Att få input från en användarinmatning är en av de viktigaste delarna av programmeringen, vilket gör dina program mer interaktiva. Denna artikel visade dig hur du använder kommandot "läs", en av nyckelkommandona i Bash-skript. I den här artikeln lärde du dig om några av de olika tillvägagångssätt som du kan använda med kommandot "läs", från grundläggande flaggoperatorer till avancerade operatörer.