Bekijk eerst de basissyntaxis van de opdracht "lezen":
lees [optie] variabeleHet gebruik van de "lees"-opdracht betekent dat u met Bash communiceert om informatie van de gebruiker te verkrijgen. Het slaat de waarde op in een variabele, maar zonder "$" teken. U zult dit concept beter kunnen begrijpen met een voorbeeld.
Voorbeeld 1: Het "lezen"-commando gebruiken in een bash-script
Om het "lees"-commando dieper te onderzoeken, zullen we een eenvoudig script maken dat om de naam van de gebruiker zal vragen. Open eerst een willekeurige teksteditor; voor deze tutorial gebruik ik de Vim-teksteditor vanwege de vele handige functies. Om Vim te installeren, voert u de volgende opdracht uit in de terminal:
$sudo apt install vimTyp vervolgens het volgende in het tekstbestand:
#! \bin\bashecho "Typ alstublieft uw naam"
lees naam
echo "Uw naam is" $name
Sla het bestand op met een willekeurige naam en druk vervolgens op Esc en typ ":w leescom.sh.Voer de volgende opdracht uit om het script uit te voeren:
$ bash readcom.shHet bovenstaande script zal de gebruiker vragen om zijn/haar naam te schrijven. Het "lees" commando zal dan de invoer van de gebruiker opslaan. Op de volgende regel wordt de naam afgedrukt die de gebruiker heeft ingevoerd.
Voorbeeld 2: Code vereenvoudigen met behulp van de "prompt"-operator
Het bovenstaande voorbeeld kan verder worden vereenvoudigd met behulp van de “prompt” operator. Laten we het bovenstaande voorbeeld herschrijven om de code te begrijpen:
#! /bin/bashlees -p "Typ uw naam" naam
echo "Uw naam is" $name
Voorbeeld 3: De gebruikersinvoer verbergen met behulp van de "geheime/stille" operator
De "-zo"vlag kan worden gebruikt om de invoer van de gebruiker te verbergen. Het volgende Bash-scriptvoorbeeld laat zien hoe u de operator "-s" gebruikt:
#! /bin/bashread -p "Voer uw gebruikersnaam in" gebruikersnaam
read -s -p "Voer uw wachtwoord in" $password
Voorbeeld 4: De tekenlengte beperken
De "-nee”-vlag kan worden gebruikt om een beperking toe te voegen aan het aantal tekens dat de gebruiker mag invoeren.
#!/bin/bashread -n 8 -p "Typ uw gebruikersnaam niet langer dan 8 tekens" gebruikersnaam
echo "Uw gebruikersnaam is" $gebruikersnaam
Met de optie "-n" kan de gebruiker nog steeds minder dan acht tekens schrijven. Om de invoerlengte verder te beperken, de “-nee”-vlag kan worden gebruikt, wat de reactie van de gebruiker beperkt tot precies acht tekens.
Voorbeeld 5: De invoer in een array verkrijgen
De gebruikersinvoer kan ook in een array worden opgenomen met de "-een” vlag. Om bijvoorbeeld de naam, leeftijd en e-mailadres van de gebruiker in één keer te krijgen, kunnen we een array gebruiken. Laten we een voorbeeld bekijken:
#! /bin/bashecho "Typ alstublieft uw naam, leeftijd en e-mailadres"
lees -een arraynaam leeftijd e-mail
echo "Uw naam, leeftijd en e-mailadres zijn: $array[@] naam leeftijd e-mailadres"
echo "Uw naam en leeftijd zijn: $array[@]:0:1 name age"
echo "Uw e-mailadres is: $array[2] email"
- "$array[@]" doorloopt alle variabelen.
- Om de indexen 0 tot 1 te doorlopen, gebruikt u "$array[@]:0:1" met de variabelenamen.
- Om de waarde van een bepaalde variabele bij een specifieke index te verkrijgen, gebruikt u "$array[2]" met de variabelenaam.
Voorbeeld 6: Een time-out toevoegen aan het "lees"-commando
Zoals de naam van de opdracht aangeeft, kan een time-out worden toegevoegd als voorwaarde voor het lezen van de code met behulp van de vlag "-t", waardoor de gebruiker informatie voor een specifieke tijd invoert. Anders gaat het programma naar de volgende regel code.
#! \bin\bashecho “Wat is de hoofdstad van Japan? Antwoord in 5 seconden”
lees -t 5 antwoord
if [ “$answer” = “tokyo” ] || [ “$answer” = “Tokio”];
dan
echo “Uw antwoord is juist!”
anders
echo “Uw antwoord is fout!”
fi
Conclusie
Invoer krijgen van gebruikersinvoer is een van de belangrijkste onderdelen van programmeren, waardoor uw programma's interactiever worden. Dit artikel liet je zien hoe je het "lees"-commando gebruikt, een van de belangrijkste commando's in Bash-scripting. In dit artikel hebt u kennis gemaakt met enkele van de verschillende benaderingen die u kunt gebruiken met de opdracht "lezen", van eenvoudige vlagoperatoren tot geavanceerde operators.