I dette emnet vil vi lære hvordan du leser brukerinndata fra terminalen og skriptet.
For å lese Bash-brukerinngangen bruker vi den innebygde Bash-kommandoen kalt lese . Den tar innspill fra brukeren og tildeler den til variabelen. Den leser bare en enkelt linje fra Bash-skallet. Nedenfor er syntaksen for implementeringen.
Syntaks
read
Følg de gitte eksemplene for å lese brukerinndata fra Bash-skriptet:
Eksempel 1:
I dette eksemplet leser vi både enkelt- og multiple variabler fra Bash-skriptet ved å bruke lesekommandoen.
Program:
#!/bin/bash # Read the user input echo 'Enter the user name: ' read first_name echo 'The Current User Name is $first_name' echo echo 'Enter other users'names: ' read name1 name2 name3 echo '$name1, $name2, $name3 are the other users.'
Se Bash-konsollen:
Produksjon:
Hva vil skje hvis vi ikke sender noen variabel med read-kommandoen?
Hvis vi ikke sender noen variabel med read-kommandoen, kan vi sende en innebygd variabel kalt SVARE (skal settes foran med $-tegnet) mens inndata vises. Det kan forklares ved hjelp av programmet nedenfor:
ddl vs dml
Program:
#!/bin/bash # using read command without any variable echo 'Enter name : ' read echo 'Name : $REPLY'
På Bash-konsollen:
Produksjon:
Eksempel 2:
I dette eksemplet legger vi inn inndata på den samme SPØRSMÅLEN ved å bruke -p kommandolinjealternativ følgende:
read -p PROMPT
Program:
#!/bin/bash read -p 'username:' user_var echo 'The username is: ' $user_var
Se Bash-konsollen:
Produksjon:
Eksempel 3:
Dette eksemplet er å holde innspillet i stille modus, slik at det som er en brukerinndata på kommandolinjen vil bli skjult for andre.
dato konvertere til streng
Så vi sender et brukernavn og skjuler passordet (stille modus) ved å bruke kommandolinjealternativene (-s, -p) vanligvis som følger:
read -sp PROMPT
Hvor -s lar en bruker beholde inndata i stille modus og -p til inntasting på ny ledetekst.
java bryter ut av loopen
Program:
#!/bin/bash read -p 'username : ' user_var read -sp 'password : ' pass_var echo echo 'username : ' $user_var echo 'password : ' $pass_var
Se Bash-konsollen:
Produksjon:
MERK: På 5thlinjen i skriptet, har vi gitt en blank linje med echo-kommando, fordi hvis vi ikke gjør den tom da, vil den gi utdata med både passord og brukernavn på samme SPØRSMÅL som bildet nedenfor.
Så skriv skriptet ditt ved å legge til en tom ekko-kommandolinje.
Eksempel 4: Dette eksemplet er å legge inn flere innganger ved hjelp av en matrise. Så bruk kommandolinjealternativet -a som følger:
read -a
Hvor -en hjelper skriptet med å lese en matrise, og variabelnavn refererer til en matrise.
Program:
#!/bin/bash # Reading multiple inputs using an array echo 'Enter names : ' read -a names echo 'The entered names are : ${names[0]}, ${names[1]}.'
Se koden på Bash Console:
Produksjon: