Bash Script User Input

Bash Script User Input
Å ta innspill fra brukeren er en vanlig oppgave for ethvert programmeringsspråk. Du kan ta innspill fra en bruker i bash -skript på flere måter. En lesekommando brukes i bash -skriptet for å ta data fra brukeren. Enkelt eller flere data kan tas i bash -skriptet ved å bruke forskjellige alternativer for lesekommandoen. Noen vanlige bruksområder av lesekommandoen vises i denne opplæringen.

Alternativ for å lese kommandoen:

Alternativ Hensikt
-p Det brukes til å gi en hjelpemelding for brukeren før inndata -ledeteksten.
-s Det brukes til å ta usynlige innspill fra brukeren. Dette alternativet brukes til å ta passord eller hemmelige data. Det kalles stille modus.
-t Det brukes til å sette tid på sekunder på å vente på å ta innspill fra brukeren.
-n Det brukes til å sette grensen for inngangstegn.

Eksempel 1: Bruk av lesekommando uten variabel

Les -kommandoen kan brukes uten variabel. De $ Svar Variabel brukes til å lese inngangen hentet fra brukeren av lesekommandoen uten variabel. Lag en bash -fil med følgende skript for å vite hvordan du bruker lesekommandoen uten variabel.

#!/bin/bash
ekko "Hva er ditt favorittprogrammeringsspråk?""
# Ta innspill uten å definere variabel
lese
# Skriv ut inngangsverdien
ekko "Svaret ditt er $ Svar"

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-2: Bruke enkel lesekommando

Lag en bash -fil med følgende skript for å vite hvordan du bruker lesekommandoen med en variabel. Etter å ha kjørt skriptet, vil programmet vente på brukerinngangen. Når brukeren skriver ut dataene og trykker på Enter, blir dataene lagret i svaret variabel. Verdien av svar Variabel vil bli skrevet ut senere.

#!/bin/bash
ekko -n "Hva er din favorittmat:"
# Tildel inngangsverdien til en variabel
Les svar
# Skriv ut verdien på variabelen
ekko "Åh! du liker $ svar!""

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-3: Bruke lesekommando med alternativer

Lag en bash -fil med følgende skript for å vite hvordan du bruker både -p- og -s -alternativene sammen i bash -skriptet. I dette eksemplet vil brukernavnet og passordet bli hentet fra brukeren og sammenlignet med den spesielle verdien for å sjekke brukernavnet og passordet er gyldig eller ikke.

#!/bin/bash
# Skriv inn påloggingsinformasjonen din
Les -P 'Brukernavn:' Bruker
Les -SP 'Passord:' Pass
# Sjekk brukernavnet og passordet er gyldig eller ikke
if (($ user == "admin" && $ pass == "12345")))
deretter
ekko -e "\ nsuccessful innlogging"
ellers
ekko -e "\ nunsukcessful innlogging"
fi

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-4: Bruke lesekommando for å ta flere innganger

Flere innganger kan tas om gangen ved å bruke lesekommandoen med flere variabelnavn. I det følgende eksempel vil det bli tatt fire innganger i fire variabler ved å bruke lesekommandoen.

#!/bin/bash
# Tar flere innganger
ekko "Type fire navn på favorittprogrammeringsspråkene dine"
Les LAN1 LAN2 LAN3 LAN4
Echo "$ LAN1 er ditt førstevalg"
Echo "$ LAN2 er ditt andre valg"
Echo "$ LAN3 er ditt tredje valg"
Echo "$ lan4 er ditt fjerde valg"

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-5: Bruke lesekommando med tidsbegrensningen

Lag en bash-fil med følgende skript for å ta tidsbegrensede innspill fra brukeren. Her vil tiden telles om sekunder. I det følgende eksemplet vil programmet vente i 5 sekunder på brukerens innspill, og hvis brukeren ikke er i stand til å skrive inn dataene innen 5 sekunder, vil programmet avslutte uten verdi.

#!/bin/bash
# Ta innspill med tidsbegrensning
Les -T 5 -P "Skriv inn favorittfargen din:" Farge
# Skriv ut inngangsverdien
ekko $ farge

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Inngangsverdien er gitt i den første utførelsen, og i den andre utførelsen er det ikke gitt noen inngangsverdi innen 5 sekunder.

Eksempel -6: Bruk av lesekommando med -n -alternativet

Lag en bash -fil med følgende skript for å ta innspill av en bestemt lengde. I følge skriptet vil brukeren kunne oppgi maksimalt 15 tegn som inngang.

#!/bin/bash
Ekko "Skriv inn telefonnummeret ditt (maksimalt 15 tegn):"
# Ta innspill av maksimalt 15 tegn lang
Les -n 15 telefon
# Legg til en ny linje
ekko
# Skriv ut inngangsverdien
ekko "Telefonnummeret ditt er $ telefon"

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-7: Kontroller en tatt bane er fil eller katalog

Lag en bash -fil med følgende skript for å ta innløp en baneverdi fra terminalen og sjekk inngangsbanen er en katalog eller fil.

#!/bin/bash
# Ta baneverdien fra inngangen
Les -P "Skriv inn den gyldige banen:" Sti
# Kontroller inndataverdiene er en katalog eller ikke
hvis [-d $ sti]; deretter
Echo "$ Path er en katalog.""
# Kontroller inndataverdiene er en fil eller ikke
elif [-f "$ sti"]; deretter
ekko "$ bane er en fil.""
ellers
ekko "ugyldig sti.""
fi

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-8: Initialiser matrisen ved hjelp av Les-kommandoen

Array -variabelen kan deklareres og initialiseres ved å bruke lesekommandoen. Opprett en bash -fil med følgende skript for å vite hvordan du oppretter og initialiserer en matrise ved å bruke Read -kommandoen. Deretter alle elementer i matrisen, det første elementet i matrisen, de to første elementene, og det siste elementet i matrisen blir skrevet ut.

#!/bin/bash
Ekko "Angi fem numeriske verdier for matrisen med plass:"
# Les verdier for matrisen
Les -a Myarr
# Skriv ut alle arrayverdier
ekko $ myarr [@]
# Skriv ut den første verdien av matrisen
ekko $ myarr [0]
# Skriv ut de to første verdiene på matrisen
ekko $ myarr [@]: 0: 2
# Skriv ut den siste verdien av matrisen
ekko $ myarr [4]

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor.

Konklusjon:

Ulike bruksområder av lesekommandoen er vist i denne opplæringen ved å bruke flere eksempler for å hjelpe Bash -brukerne til å kjenne bruken av denne kommandoen riktig og bruke den på skriptet.