Bash Read Command

Bash Read Command
Bash har ingen innebygd funksjon for å ta brukerens innspill fra terminalen. De lese Kommando av bash brukes til å ta brukerens innspill fra terminalen. Denne kommandoen har forskjellige alternativer for å ta innspill fra brukeren på forskjellige måter. Flere innganger kan tas med singelen lese kommando. Ulike måter å bruke denne kommandoen i Bash -skriptet på er beskrevet i denne opplæringen.

Syntaks

Les [Alternativer] [var1, var2, var3…]

De lese Kommando kan brukes uten noe argument eller alternativ. Mange typer alternativer kan brukes med denne kommandoen for å ta inngangen til den aktuelle datatypen. Det kan ta flere innspill fra brukeren ved å definere flere variabler med denne kommandoen.

Noen nyttige alternativer for lesekommandoen

Noen alternativer for Leset Kommando krever en ekstra parameter for å bruke. De mest brukte alternativene til lese Kommando er nevnt i følgende:

Alternativ Hensikt
-d Det brukes til å ta inngangen til avgrensningsverdien er gitt.
-n Det brukes til å ta innspill fra et bestemt antall tegn fra terminalen og slutte å ta inngangen tidligere basert på avgrenseren.
-N Det brukes til å ta innspill fra det spesielle antall tegn fra terminalen, og ignorerer avgrenseren.
-p Den brukes til å skrive ut utgangen fra hurtigmeldingen før du tar inngangen.
-s Det brukes til å ta innspillet uten et ekko. Dette alternativet brukes hovedsakelig til å ta inngangen til passordinngangen.
-en Det brukes til å ta inngangen til den indekserte matrisen.
-t Det brukes til å sette en tidsbegrensning for å ta innspill.
-u Det brukes til å ta innspill fra filen.
-r Det brukes til å deaktivere tilbakeslagene.

Ulike eksempler på lesekommandoen

Bruken av lese Kommando med forskjellige alternativer vises i denne delen av denne opplæringen.

Eksempel 1: Bruke lesekommando uten noe alternativ og variabel

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av Leset kommando uten noe alternativ og variabel. Hvis ingen variabel brukes med lese Kommando, er inngangsverdien lagret i $ Svar variabel. Verdien av denne variabelen skrives ut senere etter å ha tatt inngangen.

#!/bin/bash
#Trykk hurtigmeldingen
Ekko "Skriv inn favorittfargen din:"
#Ta innspillet
lese
#Trykk inngangsverdien
ekko "favorittfargen din er $ svar"

Produksjon:

Følgende utgang vises hvis "Blå”Verdien tas som en inngang:

Eksempel 2: Bruke lesekommando med en variabel

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av Leset kommando med en variabel. Metoden for å ta enkelt- eller flere variabler ved bruk av en lese Kommandoen vises i dette eksemplet. Verdiene for alle variabler skrives ut senere.

#!/bin/bash
#Trykk hurtigmeldingen
Ekko "Skriv inn produktnavnet:"
#Ta inngangen med en enkelt variabel
Les elementet
#Trykk hurtigmeldingen
ekko "Angi fargevariasjonene til produktet:"
#Ta tre inngangsverdier i tre variabler
Les Color1 Color2 Color3
#Trykk inngangsverdien
ekko "Produktnavnet er $ element.""
#Trykk inngangsverdiene
ekko "Tilgjengelige farger er $ color1, $ color2 og $ color3.""

Produksjon:

Følgende utgang vises etter å ha tatt en enkelt inngang først og tre innganger senere:

Eksempel 3: Bruke lesekommando med -p -alternativet

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av Leset kommando med en variabel og -p alternativ. Inngangsverdien skrives ut senere.

#!/bin/bash
#Ta innspillet med hurtigmeldingen
Les -P "Skriv inn boknavnet:" Bok
#Trykk inngangsverdien
Echo "Boknavn: $ bok"

Produksjon:

Følgende utgang vises etter å ha tatt inngangen:

Eksempel 4: Bruke lesekommando med -salternativet

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av Leset kommando med en variabel og -s alternativ. Inngangsverdien på passordet vil ikke vises for alternativet -s -alternativet. Inngangsverdiene blir sjekket senere for autentisering. En suksess- eller feilmelding skrives også ut.

#!/bin/bash
#Ta innspillet med hurtigmeldingen
Les -P "Skriv inn e -posten din:" E -post
#Ta den hemmelige innspillet med hurtigmeldingen
Les -SP "Skriv inn passordet ditt:" Passord
#Add newline
ekko ""
#Sjekk e -posten og passordet for autentisering
hvis [[$ e -post == "[email protected] "&& $ passord ==" Hemmelighet "]
deretter
#Trykk suksessmeldingen
ekko "autentisert.""
ellers
#Trykk feilmeldingen
ekko "ikke autentisert.""
fi

Produksjon:

Følgende utgang vises etter å ha tatt de gyldige og ugyldige inngangsverdiene:

Eksempel 5: Bruke lesekommando med -et alternativ

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av Leset kommando med en variabel og -en alternativ. Arrayverdiene skrives ut senere etter å ha tatt inngangsverdiene fra terminalen.

#!/bin/bash
ekko "Skriv inn landsnavnene:"
#Ta opp flere innganger ved hjelp av en matrise
Les -a land
ekko "Landsnavn er:"
#LEAD arrayverdiene
for land i $ land [@]
gjøre
ekko $ land
Ferdig

Produksjon:

Følgende utgang vises etter å ha tatt matriseverdiene:

Eksempel 6: Bruke lesekommando med -n -alternativet

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av Leset kommando med en variabel og -n alternativ.

#!/bin/bash
#Trykk hurtigmeldingen
Ekko "Angi produktkoden:"
#Ta innspillet til fem tegn
Les -N 5 -kode
#Add newline
ekko ""
#Trykk inngangsverdien
ekko "Produktkoden er $ kode"

Produksjon:

Følgende utgang vises hvis "78342”Verdien tas som input:

Eksempel 7: Bruke lesekommando med alternativ

Lag en bash -fil med følgende skript som tar inngangen fra terminalen ved hjelp av lese kommando med en variabel og -t alternativ.

#!/bin/bash
#Trykk hurtigmeldingen
ekko -n "Skriv resultatet av 10-6:"
#Ta innspillet til fem tegn
Les -T 3 Svar
#Sjekk inngangsverdien
if [[$ svar == "4"]]
deretter
ekko "Riktig svar.""
ellers
ekko "feil svar.""
fi

Produksjon:

Følgende utgang vises etter å ha tatt de riktige og uriktige inngangsverdiene:

Konklusjon

Bruken av noen nyttige alternativer for lese Kommando forklares i denne opplæringen ved å bruke flere eksempler for å kjenne de grunnleggende bruken av lese kommando.