Hvordan bruke bash “if -z” og “if -n” utsagn for å teste strengen

Hvordan bruke bash “if -z” og “if -n” utsagn for å teste strengen

"IF" -uttalelsen brukes i bash for betinget forgrening som på andre programmeringsspråk. "IF" -uttalelsen kan brukes til å sjekke de forskjellige forholdene i bash. De forskjellige typene sammenligningsoperatører, logiske operatører og alternativer brukes med "if" -uttalelsen for testing. Bruken av alternativet “-z” og “-n” for å teste strengverdiene ved å bruke "IF" -uttalelsen i Bash vises i denne opplæringen.

Ved hjelp av "if -z" -uttalelsen

Noen ganger kreves det å sjekke om en strengvariabel er tom, eller om den inneholder en streng med null lengde. Det er mange alternativer i bash for å gjøre denne oppgaven. Å bruke "-z" -alternativet med "hvis" -uttalelsen er en av måtene å sjekke om en variabel er tom eller ikke. Bruken av alternativet "If -z" vises i neste del av opplæringen.

Eksempel 1: Kontroller "if -z" -uttalelsen ved å bruke "[]"

Lag en bash -fil med følgende skript der bruken av "if -z" -uttalelsen med "[]" vises. To innganger er hentet fra brukeren. Hvis noen av inngangsverdiene er tomme, skrives det ut en feilmelding. Ellers beregnes summen av de to inngangsverdiene.

#!/bin/bash
#Read det første nummeret
Les -P "Skriv inn det første nummeret:" N1
#Read det andre nummeret
Les -P "Skriv inn det andre nummeret:" N2
#Sjekk noen inngang er tom eller ikke
if [[-z "$ n1" || -z "$ n2"]]
deretter
#Trykk feilmeldingen
ekko "Det første eller andre nummeret er tomt.""
ellers
#Kalsulere summen
sum = $ (($ n1+$ n2))
#Trykk summeringsverdien
ekko "summen av $ n1 og $ n2 er $ sum.""
fi


Produksjon:

Følgende utgang vises hvis skriptet blir utført uten noe argument:


Følgende utgang vises hvis skriptet blir utført med ett argument:


Følgende utgang vises hvis skriptet blir utført med to argumenter:


Eksempel 2: Kontrollere "if -z" -uttalelsen med “Test” -kommandoen

Lag en bash -fil med følgende skript der bruken av "if -z" -uttalelsen med "test”Kommando vises. Én inngang er hentet fra brukeren som må være numerisk. Hvis inngangsverdien er tom, skrives det ut en feilmelding. Hvis inngangsverdien er ikke-tom, men ikke inneholder en numerisk verdi, skrives en annen feilmelding. Hvis et heltallnummer tas som en inngang, skrives inngangsverdien.

#!/bin/bash
#Read aldersverdien
Les -P "Skriv inn din alder:" Alder
#Sjekk om inngangsverdien er tom eller ikke
Hvis test -z "$ alder"
deretter
#Trykk feilmeldingen for tom
ekko "Inngangsverdien er tom.""
exit
fi
#Sjekk om inngangsverdien er et tall eller ikke
hvis ! [[$ alder = ~ ^[0-9]+$]]; deretter
#Trykk feilmeldingen for ikke-numeriske data
ekko "aldersverdien må være et tall.""
ellers
#Trykk inngangsverdien
ekko "du er $ alder år gammel.""
fi


Produksjon:

Følgende utgangspar hvis skriptet utføres med den numeriske inngangsverdien:


Følgende utgang vises hvis skriptet utføres med strenginngangsverdien:

Ved hjelp av "if -n" -uttalelsen

Noen ganger kreves det å sjekke om en strengvariabel er ikke-tom, eller om den inneholder en strengverdi mer enn null lengde. Det er mange alternativer i bash for å gjøre denne oppgaven. Å bruke "-n" -alternativet med "hvis" -uttalelsen er en av måtene å sjekke om en variabel er ikke-tom eller ikke. Bruken av alternativet "If -n" vises i neste del av opplæringen.

Eksempel 1: Kontroller "hvis -n" -uttalelsen ved å bruke "[]"

Lag en bash -fil med følgende skript der bruken av "if -n" -uttalelsen med "[]" vises. En inngangsverdi er hentet fra brukeren. Hvis inngangsverdien er tom, skrives det ut en feilmelding. Ellers skrives verdien av inngangen.

#!/bin/bash
#Read boknavnet
Les -P "Skriv inn boknavnet:" Bok
#Sjekk hvis inngangen er ikke-null eller ikke
hvis ! [-n "$ bok"]
deretter
#Trykk feilmeldingen
ekko "boknavn kan ikke være tomt.""
ellers
#Trykk inngangsverdien
ekko "Boknavnet er $ bok.""
fi


Produksjon:

Følgende utgang vises hvis skriptet utføres med noen inngangsverdi:


Følgende utgang vises hvis skriptet utføres med en strenginngangsverdi:


Eksempel 2: Kontroller “If -n” -uttalelsen med “Test” -kommandoen

Lag en bash -fil med følgende skript der bruken av “if -n” -uttalelsen med “Test” -kommandoen vises. Den første inngangen er en streng og den andre inngangen er numerisk. Hvis begge inngangsverdiene er ikke-tomme, skrives en feilmelding. Hvis den andre inngangsverdien er ikke-numerisk, ellers er inngangsverdiene skrives ut.

#!/bin/bash
#Read boknavnet
Les -P "Skriv inn boknavnet:" Bok
#Read boknavnet
Les -P "Skriv inn bokprisen:" Pris
#Sjekk om inngangen er ikke-null eller ikke
IF Test -N "$ BOOK" && TEST -N "$ PRIS"
deretter
#Sjekk om inngangsverdien er et tall eller ikke
hvis ! [[$ pris = ~ ^[0-9]+$]]; deretter
#Trykk feilmeldingen for ikke-numeriske data
ekko "Prisverdien må være et tall.""
ellers
#Trykk inngangsverdiene
ekko "Boknavn er $ bok.""
ekko "bokpris er $ pris.""
fi
ellers
#Trykk feilmeldingen
ekko "boknavn eller pris kan ikke være tomt.""
fi


Produksjon:

Følgende utgang vises hvis skriptet utføres med to tomme inngangsverdier:


Følgende utgang vises hvis skriptet utføres med en tom inngangsverdi:


Følgende utgang vises hvis skriptet utføres med to ikke-tomme gyldige inngangsverdier:


Følgende utgang vises hvis skriptet utføres med to ikke-tomme verdier og en ugyldig prisverdi:

Konklusjon

Bruken av både "If -z" og "If -n" -uttalelser blir forklart i denne opplæringen ved å bruke flere eksempler for å hjelpe Bash -brukerne til å bruke disse uttalelsene i skriptet riktig.