Hvordan ta innspill fra en bruker i bash -skript [Advanced Techniques]

Hvordan ta innspill fra en bruker i bash -skript [Advanced Techniques]

Du kan opprette interaktive skript ved å ta innspill fra brukeren under utførelse. Det hjelper deg også å manipulere utdataene i henhold til kravene. Det er noen enkle metoder å ta innspill fra brukeren. Derfor er det best å bruke mer avanserte måter som mellomliggende eller ekspert. Imidlertid trenger mange bash -brukere å lære avanserte teknikker for å ta innspill fra brukerne i et bash -skript. Så i denne opplæringen vil vi forklare dem alle.

Hvordan ta innspill fra en bruker i bash -skript [Advanced Techniques]

Med lesekommandoen kan du ta innspill, men vet du at du kan ta flere innganger? La oss ta et eksempel for å få inngående informasjon. Anta at vi ønsker å lage et skript for å utføre en aritmetisk beregning ved hjelp av flere (a, b, c, d, e) tall:

#!/bin/bash
ekko "Vennligst skriv inn tre tall"
Les A B C D E
sum = $ ((a+b+c+d+e))
ekko "Tillegg er $ sum"
multiply = $ ((a*b*c*d*e))
ekko "multiplikasjon er $ multiply"

Nå kan vi utføre skriptet og legge inn tallene for å beregne tillegg og multiplikasjon:

Hvis du ikke vil opprette en egen Echo -setning, kan du legge den til i Les -kommandoen ved hjelp av -p -alternativet:

#!/bin/bash
Les -P "Vennligst skriv inn navn og alder:" Navnalder
if [$ alder -LT 17]
deretter
ekko "Beklager!! Du er ikke kvalifisert for kurset "
ellers
ekko "flott!! Du er kvalifisert for kurset "
fi

Ovennevnte skript krever at en bruker er minst 17 år for å få valgbarhet for det aktuelle kurset:

Ta innspill ved hjelp av STDIN (standardinngang)

Hvis du vil gå et skritt videre i avanserte teknikker, kan du bruke STDIN -konseptet. Du kan bruke stdin i manuset for å få enkle løsninger. La oss ta et eksempel der vi ønsker å filtrere ut listen over kvalifiserte kandidater som allerede har sendt inn gebyrene. Vi har en liste som inneholder detaljer som kandidatnavn, alder, dato for innlevering av skjemaet og status for avgiftsinnlevering. Så vi kan bruke det undergitte skriptet for å få de ønskede detaljene:

#!/bin/bash
Ekko "detaljer om avgiftene underkastelse:"
CAT /DEV /STDIN | kutt -d "-f 1,4 | Sorter

Dette skriptet gir følgende resultat:

Innpakning

Så dette handlet om de avanserte teknikkene du kan prøve å ta innspill fra brukeren i et bash -skript. I denne opplæringen har vi forklart forskjellige alternativer i lesekommandoen og stdin for å legge inn inngangen raskt. Hvis du er ny på Bash og vil vite hvordan du tar innspill, kan du sjekke nettstedet vårt for å vite mer.