logo

Les brukerinndata

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:

Les brukerinndata

Produksjon:

Les brukerinndata

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:

Les brukerinndata

Produksjon:

Les brukerinndata

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:

Les brukerinndata

Produksjon:

Les brukerinndata

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:

Les brukerinndata

Produksjon:

Les brukerinndata

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.

Les brukerinndata

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:

Les brukerinndata

Produksjon:

Les brukerinndata