Jak sprawdzić, czy zmienna jest ustawiona lub pusta w bash?

How Check Variable Is Set



Zmienna może być zdefiniowana lub niezdefiniowana. Jeśli jakakolwiek zmienna nie jest zadeklarowana lub zadeklarowana, ale nie jest przypisana żadna wartość, zmienna nie jest ustawiona lub niezdefiniowana. Gdy jakakolwiek zmienna jest zadeklarowana i przypisana do niej wartość, to zmienna jest ustawiana. Wielokrotnie wymaga wiedzy, czy konkretna zmienna jest ustawiona lub nie do celów programistycznych. Jednym z ważnych celów sprawdzania, czy zmienna jest ustawiona, czy nie, jest walidacja danych. Bash nie ma wbudowanej funkcji, jak inne standardowe języki programowania, aby sprawdzić, czy zmienna jest ustawiona, czy nie. Ale bash ma funkcję do wykonania tego zadania. W tym samouczku pokazano, jak sprawdzić, czy zmienna jest ustawiona, czy nie w bash.

Składnia:







[[ -vzmienny]]Lub[[ -zzmienny]]

Opcja „-v” lub „-z” służy do sprawdzania, czy zmienna jest ustawiona lub nieustawiona. Powyższe wyrażenie logiczne zwróci true, jeśli zmienna jest ustawiona i zwróci false, jeśli zmienna nie jest ustawiona lub jest pusta.



${zmienna+ciąg}

Zastępowanie parametrów to kolejny sposób sprawdzenia, czy zmienna jest ustawiona lub nieustawiona. Jeśli zmienna jest ustawiona, zwróci wartość ciągu, w przeciwnym razie zwróci null.



Przykład-1: Sprawdź, czy zmienna jest ustawiona lub nieustawiona za pomocą opcji „-z”

Utwórz plik bash o nazwie check_var1.sh z następującym skryptem. Tutaj pierwszy ` jeśli ` warunek zwróci true i Zmienna Num nie jest ustawiona wydrukuje. W kolejnej instrukcji do zmiennej przyporządkowano 20, $liczba . Drugi warunek `if` zwróci false i Ustawiono Num i wartość Num=20 wydrukuje.





check_var1.sh

#!/kosz/bash
#Sprawdź, czy zmienna jest ustawiona, czy nie
Jeśli [ -z ${liczba} ];następnie
wyrzucił „Zmienna „Num” nie jest ustawiona”
w przeciwnym razie
wyrzucił 'Zmienna 'Num' jest ustawiona'
być
#Przypisz wartość
na jednego=20
#Sprawdź, czy zmienna jest ustawiona, czy nie po przypisaniu wartości
Jeśli [ -z ${liczba} ];następnie
wyrzucił Zmienna „Num” nie jest ustawiona”
w przeciwnym razie
wyrzucił ''Num jest ustawiona, a wartość Num=$liczba'
być

Uruchom skrypt.



$grzmotnąćcheckvar1.sh

Przykład-2: Sprawdź, czy zmienna jest ustawiona lub nieustawiona za pomocą substytutu parametru

Utwórz plik bash o nazwie check_var2.sh i dodaj następujący skrypt. Tutaj wartość ciągu jest przypisywana do zmiennej, $str przed sprawdzeniem, czy zmienna jest ustawiona lub nieustawiona. Warunek „if” zwróci true i komunikat, Zmienna 'str' jest ustawiona, a wartość to Hello wydrukuje.

check_var2.sh

#!/kosz/bash
#Ustaw zmienną
P=Witaj
#Przypisz wartość World do checkval, jeśli zmienna str jest ustawiona
checkval=${str+Świat}
#Sprawdź, czy zmienna jest ustawiona lub nieustawiona
Jeśli [ $checkval -równeŚwiat];następnie
wyrzucił Zmienna „str” jest ustawiona, a jej wartość to$ str'
w przeciwnym razie
wyrzucił „Zmienna „str” nie jest ustawiona”
być

Uruchom skrypt.

$grzmotnąćcheckvar2.sh

Przykład-3: Sprawdź, czy zmienna jest pusta, czy nie

Utwórz plik bash o nazwie check_var3.sh i dodaj następujący skrypt. Skrypt przechowa pierwszy argument wiersza poleceń w zmiennej, $argv to jest testowane w następnym oświadczeniu. Dane wyjściowe będą Pierwszy argument jest pusty jeśli nie zostanie przekazany żaden argument, w przeciwnym razie zostanie wypisana wartość pierwszego argumentu.

check_var3.sh

#!/kosz/sz
#Przeczytaj pierwszą wartość argumentu wiersza poleceń
argv=„1 dolar”
#Sprawdź, czy podano pierwszą wartość argumentu
[ -v '$argv' ] && wyrzucił „Pierwszy argument jest pusty” ||
wyrzucił 'Wartość pierwszego argumentu to$argv'

Uruchom skrypt bez żadnych argumentów.

$grzmotnąćcheckvar3.sh

Uruchom skrypt z argumentem.

$grzmotnąćcheckvar3.shtest

Wniosek

W tym samouczku przedstawiono różne sposoby sprawdzania, czy zmienna jest ustawiona, nieustawiona lub pusta, na różnych przykładach. Mam nadzieję, że ten samouczek pomoże użytkownikom nauczyć się sposobów testowania dowolnej zmiennej bash.