Hvordan ber jeg om innspill i bash?

Hvordan ber jeg om innspill i bash?

Det er ofte nødvendig å utføre beregninger avhengig av brukerinnganger når du oppretter et bash -skript. Gjennom denne guiden, før vi utfører en grunnleggende operasjon med et skallskript, la oss først se på å tolke og verifisere brukerinnganger. Vi vil bruke den integrerte bash read -kommandoen for å tolke Bash -brukerinngangen. Les -kommandoen tar en viss verdi som inndata via brukeren og tildeler den til variabelen. Den leste bare en enslig linje gjennom bash -kommandoterminalen. I denne guiden vil du lære å tolke brukerinngangen fra terminalen og skriptet.

For å implementere lesekommandoen, her er syntaks:

lese

Eksempel 01:

La oss ta et enkelt eksempel på leseinngang fra brukeren i bash når du er hurtig. Åpne en terminal og opprett en ny fil “Input.sh ”.

Åpne filen og legg til en liten kode til den som nedenfor. For det første ber Echo -setningen brukeren legge til inngangsverdi. Leserklæringen brukes til å legge inn brukerverdi, som vil bli lagret i variabelen “Navn”. Den siste ekko -setningen brukes til å skrive ut svaret med innfastet verdi som "$ name" -variabel.

Utfør filen ved hjelp av bash -kommandoen. For det første vil det be om navnet. Når brukeren legger inn verdien “AQSA”, vil den skrive ut meldingen med verdien i den.

Eksempel 02:

Åpne den gamle filen og skriv koden nedenfor i den. Vi bruker kanskje den integrerte lesekommandoen; til en bruker med en spørring, ved å bruke det -p -alternativet. Du må innkalle for å bruke nøkkelordet "Readline" -E -for å la linjedigering med piltastene. Etter det, bruk variabelen for å skrive ut banen til en fil som er angitt av en bruker på kommandoskallet.

La oss sjekke utdataene til denne koden ved hjelp av bash -kommandoen i terminalen. Du vil se at den vil be om at filstien skal legges inn i skallet. Når du oppgir den nødvendige verdien og trykker på Enter, vil den skrive den ut.

$ bash input.sh

Hvis du vil foreslå et svar, må du bruke nøkkelordet "-i" etter strengen med banen i omvendt komma.

La oss sjekke utdataene for oppdatert kode ved hjelp av bash -kommandoen. Du vil oppfatte at det vil foreslå deg en filsti som nedenfor.

Eksempel 03:

La oss ha et annet eksempel på å be om innspill i et skall. Skriv ned koden nedenfor i filen “Input.sh ”. Vi har to lesekommandoer for å legge til påloggingsinformasjon av en bruker på skallet. Nøkkelordet “-sp” brukes til å skjule legitimasjonens “passord” mens du går inn i skallet.

Ved utførelse kan du se at brukeren har lagt inn legitimasjonen mens passordet er skjult mens du går inn. Til slutt har den vist meldingen for å takke brukeren.

Eksempel 04:

Vi har et annet eksempel for å lese flere bilnavn som verdier fra brukerens bash -skall. For dette formålet krevde vi tre variabler som “Car1”, “Car2” og “Car3”. Vi har en ekko -kommentar som ber om navnene på biler. Les -kommandoen brukes til å lese innlastede verdier (navn på biler) av en bruker i et skall. De neste tre ekko -utsagnene vil skrive ut meldingene med navnene på bilen fortløpende.

Bruke bash -kommandoen, utfør filen. Det vil be om navnene på biler du liker. Da brukeren skrev inn navnene på biler fortløpende, vil den lagre dem i variabler i en lest -kommando og skrive dem ut ved å bruke de neste tre ekko -utsagnene en etter en.

Eksempel 05:

I eksemplet ovenfor har vi sett hvordan du kan be brukerinngang mens vi lagrer inngangen i tre variabler. I dette eksemplet vil vi lære om hvordan du kan lese brukerinnleggede verdier i en variabel som Array-medlemmer som bruker nøkkelordet “-a”. Så åpne den samme filen og skriv koden nedenfor i den. Echo -uttalelsen vil be deg om å legge inn den nødvendige inngangen. Leserklæringen har nøkkelordet "-a" for å ta flere verdier fra brukeren og lagre dem til den ene variable arrayen "Navn". Ved siste Echo -setningen er alle de innlastede verdiene skrevet ut som matrisemedlemmer i strengteksten.

Mens du kjører filen “Input.SH ”, brukeren har blitt bedt om å oppgi verdiene. Når brukeren oppgir verdiene, har disse verdiene blitt lagret i matrisvariabelen “Navn”. Etter å ha lagret disse verdiene, vil Echo -setningen bli utført og skrive ut de innlastede navnene som arrayverdier i seg selv som vist.

Eksempel 06:

La oss ta den samme filen med liten endring i skriptet. Vi har skrevet to lesekommandoer for å ta verdi fra en bruker som input i et skall og lagret dem i to variabler, “num1” og “num2”. Etter det er begge variablene blitt skrevet ut.

I kommandoterminalen, skriv CHMOD -kommandoen for å tildele utførelsesrettigheter til denne filen.

$ chmod +x input.sh

Når du utfører denne filen ved hjelp av bash, vil du se at den vil be deg om å legge til tall etter hverandre. Når du oppgir de nødvendige verdiene, vil den skrive ut begge tallene separat.

Hvis du vil validere at ethvert felt eller variabel blir tomt av brukeren, kan du oppdatere den forrige koden som nedenfor. Nøkkelordet “-z” brukes til å sjekke begge variablene, hvis de har noen blanke mellomrom i seg.

Mens utførelsen har brukeren lagt til plass som et tall. Brukeren fikk en melding om å prøve igjen fordi variabelen som er lagt inn av brukeren fikk mellomrom.

La oss prøve den samme koden med noen betingelser over tallene som er lagt inn av brukeren. Hvis brukerinngangen er noe annet enn de som er nevnt i koden nedenfor, vil den sende en melding.

Mens han prøver denne koden, har en bruker lagt til ett spesielt tegn, som genererer en rask melding.

Konklusjon

I denne guiden har du vellykket lært hvordan du ber brukerinngang i skallet og tolke brukerinngangen ved hjelp av noen veldig enkle eksempler.