Å lese brukerinngangen er en integrert del av et interaktivt bash -skript. Et bash -skript inneholder spesifikke kommandoer som terminalen utfører i en fast sekvens. Samtidig er et interaktivt bash -skript der brukeren bestemmer hva som skjer videre.
Begge har fordeler og ulemper, men det er godt å lære de grunnleggende måtene å lese et innspill fra brukerne mens du utfører et bash -skript. Denne guiden inkluderer metoden for å lese brukerinngangen gjennom lesekommandoen og passere inngangene som en parameter når du kjører et bash -skript.
Grunnleggende måter å ta innspill fra en bruker i bash -skriptet
Les -kommandoen tar en pause konsollen og venter på brukerinngangen. Du kan bruke denne kommandoen slik den er i terminalen, eller den kan brukes med de andre kommandoene inne i et bash -skript for å godta brukerinngangen mens du utfører et skript. La oss for eksempel lage et eksempler på bash -skriptet som inneholder følgende koder:
#!/bin/bash
# Les brukerinndata ved hjelp av Read -kommandoen
Les param1
ekko $ param1
I det forrige kodeutdraget opprettet vi et bash -skript for å godta en inngang fra brukeren ved hjelp av Les kommando og skriv den tilbake i konsollen ved å bruke ekkokommando. Nå kan vi kjøre skriptet i terminalen og legge inn ordet “Linux”. Systemet trykker automatisk ordet:
.//Linux
Linux
Hvis du vil legge inn flere variabler, kan du bruke følgende skript som et eksempel:
#!/bin/bash
# Les brukerinndata ved hjelp av Read -kommandoen
Les param1
Les param2
Les param3
Les param4
ekko "Beste Linux OS er:"
ekko $ param1
ekko $ param2
ekko $ param3
Echo $ param4
Når du har kjørt dette skriptet, vil terminalen be deg om å gi 4 innganger for å skrive dem ut som en utgang:
.//Ubuntu
Fedora
Kali Linux
Arch Linux
Beste Linux OS er:
Ubuntu
Fedora
Kali Linux
Arch Linux
Du kan legge til en -S flagg med lesekommandoen hvis du ikke vil skrive ut inngangen. FLAG -flagget godtar lydløst brukerinngangen i terminalen og skriver det ut når en bruker trykker på ENTER -knappen. Her er skriptkoden du kan prøve:
#!/bin/bash
# Les brukerinndata ved hjelp av Read -kommandoen
LES -S PARAM1
ekko $ param1
Det forrige skriptet skriver ut følgende resultater etter vellykket utførelse:
.//Linux
Hvis du vil skrive ut noe med en bestemt tidsbegrensning, bruk -t flagg med lesekommandoen. Når du gir inngangen til det spesifiserte tidspunktet, fortsetter skriptet som normalt, eller det hopper ganske enkelt opp i inngangen og fortsetter med resten av skriptet.
#!/bin/bash
# Les brukerinndata ved hjelp av Read -kommandoen
Les -T 5 param1
ekko $ param1
ekko "vil dette bli skrevet ut?""
I følge det forrige skriptet vil systemet vente i 5 sekunder på inngangen og deretter hoppe over det for å kjøre resten av skriptet.
.//Vil dette bli skrevet ut?
Du kan bruke -N -flagget til å begrense antall inngangstegn for et skript. Følgende skript krever for eksempel 7 tegn for å kjøre resten av skriptet vellykket:
#!/bin/bash
# Les brukerinndata ved hjelp av Read -kommandoen
ekko "Innspillet vil bli sendt inn etter å ha akseptert 7 tegn"
LES -N 7 PARAM1
# Skriv ut inngangen som brukeren skrev
ekko $ param1
I henhold til skriptet ville du sendt inn inngangen etter 7 tegn, og det var det som skjedde i det følgende:
.//Linuxoslinuxos
Konklusjon
Dette er den korte informasjonen om metodene om hvordan du tar en innspill fra en bruker i et bash -skript. Alle av dem er ganske enkle. På en sideanmerkning kan vi også blande og matche disse parametrene for å legge inn variabelen. Som nybegynner kan de gitte eksemplene hjelpe deg med å lage skriptet og legge inn de ønskede detaljene.