Jak używać instrukcji Bash „If -Z” i „If -n”, aby przetestować ciąg

Jak używać instrukcji Bash „If -Z” i „If -n”, aby przetestować ciąg

Oświadczenie „If” jest używane w Bash do gałęzi warunkowego, jak w innych językach programowania. Oświadczenie „If” można użyć do sprawdzenia różnych warunków w Bash. Różne typy operatorów porównawczych, operatorów logicznych i opcji są używane z instrukcją „If” do testowania. Zastosowania opcji „-z” i „-n” do testowania wartości ciągów za pomocą instrukcji „If” w bash są pokazane w tym samouczku.

Korzystanie z instrukcji „If -z”

Czasami konieczne jest sprawdzenie, czy zmienna łańcuchowa jest pusta, czy też zawiera ciąg o zerowej długości. Bash ma wiele opcji, aby wykonać to zadanie. Korzystanie z opcji „-Z” z instrukcją „If” jest jednym ze sposobów sprawdzenia, czy zmienna jest pusta, czy nie. Zastosowania opcji „If -Z” są pokazane w następnej części samouczka.

Przykład 1: Sprawdzanie instrukcji „If -Z” za pomocą „[[]”

Utwórz plik bash z następującym skryptem, w którym wyświetlane jest użycie instrukcji „If -z” z „[[]”. Dwa wejścia są pobierane od użytkownika. Jeśli którekolwiek z wartości wejściowych jest puste, wydrukowany jest komunikat o błędzie. W przeciwnym razie suma dwóch wartości wejściowych jest obliczana i drukowana.

#!/bin/bash
#Przeczytaj pierwszy numer
Przeczytaj -p „Wprowadź pierwszy numer:” N1
#Przeczytaj drugą liczbę
Przeczytaj -p „Wprowadź drugą liczbę:” N2
#Sprawdź dowolne dane wejściowe są puste, czy nie
Jeśli [[-z "$ n1" || -z „$ n2”]]
Następnie
#Print komunikat o błędzie
echo „Pierwsza lub druga liczba jest pusta."
w przeciwnym razie
#Uzupełnij sumę
sum = $ (($ n1+$ n2))
#Printu wartość sumowania
echo „Suma n1 i $ n2 to $ suma."
fi


Wyjście:

Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany bez żadnego argumentu:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany za pomocą jednego argumentu:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dwoma argumentami:


Przykład 2: Sprawdzanie instrukcji „If -z” za pomocą polecenia „test”

Utwórz plik bash z następującym skryptem, w którym użycie instrukcji „If -z” z „test”Wyświetlane jest polecenie. Jedno wejście jest pobierane od użytkownika, który musi być numeryczny. Jeśli wartość wejściowa jest pusta, wydrukowana jest komunikat o błędzie. Jeśli wartość wejściowa nie jest pusta, ale nie zawiera wartości liczbowej, wydrukowany jest inny komunikat o błędzie. Jeśli liczba całkowita jest traktowana jako wejście, wartość wejściowa jest drukowana.

#!/bin/bash
#Przeczytaj wartość wieku
Przeczytaj -p „Wprowadź swój wiek:”
#Sprawdź, czy wartość wejściowa jest pusta, czy nie
Jeśli test -z „$ wiek”
Następnie
#PROPREM komunikat o błędzie dla pustego
echo „Wartość wejściowa jest pusta."
Wyjście
fi
#Sprawdź, czy wartość wejściowa jest liczbą, czy nie
Jeśli ! [[$ wiek = ~ ^[0-9]+$]]; Następnie
#PRORT Komunikat o błędzie dla danych nie-numerycznych
echo „Wartość wieku musi być liczbą."
w przeciwnym razie
#PRORT WARTOŚĆ WEJŚCIA
echo „Masz lata w wieku."
fi


Wyjście:

Następujące dane wyjściowe Apepary, jeśli skrypt jest wykonywany z numeryczną wartością wejściową:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z wartością wprowadzania ciągu:

Korzystanie z instrukcji „If -n”

Czasami konieczne jest sprawdzenie, czy zmienna łańcuchowa nie jest pusta, czy też zawiera wartość ciągu więcej niż zerowa długość. Bash ma wiele opcji, aby wykonać to zadanie. Korzystanie z opcji „-N” z instrukcją „If” jest jednym ze sposobów sprawdzenia, czy zmienna nie jest pusta, czy nie. Zastosowania opcji „If -n” są pokazane w następnej części samouczka.

Przykład 1: Sprawdzanie instrukcji „If -n” za pomocą „[]”

Utwórz plik bash z następującym skryptem, w którym wyświetlane jest użycie instrukcji „If -n” z „[[]”. Jedna wartość wejściowa jest pobierana od użytkownika. Jeśli wartość wejściowa jest pusta, wydrukowana jest komunikat o błędzie. W przeciwnym razie wartość wejścia jest drukowana.

#!/bin/bash
#Przeczytaj nazwę książki
Przeczytaj -p „Wprowadź nazwę książki:”
#Sprawdź, czy wejście jest niezerowe, czy nie
Jeśli ! [-n „$ book”]
Następnie
#Print komunikat o błędzie
Echo „Nazwa książki nie może być pusta."
w przeciwnym razie
#PRORT WARTOŚĆ WEJŚCIA
echo „nazwa książki to $ książka."
fi


Wyjście:

Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dowolną wartością wejściową:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z wartością wejściową ciągu:


Przykład 2: Sprawdzanie instrukcji „If -n” za pomocą polecenia „test”

Utwórz plik bash z następującym skryptem, w którym wyświetlane jest użycie instrukcji „If -n” z poleceniem „test”. Pierwsze wejście to ciąg, a drugie wejście jest numeryczne. Jeśli obie wartości wejściowe nie są puste, wydrukowano komunikat o błędzie. Jeśli druga wartość wejściowa nie jest numeryczna, w przeciwnym razie wartości wejściowe są drukowane.

#!/bin/bash
#Przeczytaj nazwę książki
Przeczytaj -p „Wprowadź nazwę książki:”
#Przeczytaj nazwę książki
Przeczytaj -p „Wprowadź cenę książki:„ Cena
#Sprawdź, czy wejście jest niezerowe, czy nie
Jeśli test -n „$ book” && test -n „$ cena”
Następnie
#Sprawdź, czy wartość wejściowa jest liczbą, czy nie
Jeśli ! [[$ price = ~ ^[0-9]+$]]; Następnie
#PRORT Komunikat o błędzie dla danych nie-numerycznych
echo „Wartość cenowa musi być liczbą."
w przeciwnym razie
#PROPR WALENIA WEJŚCIA
Echo „Nazwa książki to $ książka."
Echo „Cena książki to cena $."
fi
w przeciwnym razie
#Print komunikat o błędzie
Echo „Nazwa książki lub cena nie może być pusta."
fi


Wyjście:

Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dwoma pustymi wartościami wejściowymi:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z jedną pustą wartością wejściową:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dwoma nieustannymi prawidłowymi wartościami wejściowymi:


Pojawi się następujące dane wyjściowe, jeśli skrypt jest wykonywany z dwiema wartościami nie pustymi i nieprawidłową wartością cenową:

Wniosek

Zastosowania zarówno instrukcji „If -Z”, jak i „If -n” są wyjaśnione w tym samouczku za pomocą wielu przykładów, aby pomóc użytkownikom BASH w prawidłowym zastosowaniu tych stwierdzeń w ich skrypcie.