Zmienna jest często określana jako pudełko zawierające nazwę i zawartość. Proste polecenie, np. „echo Hello $Nazwa_zmiennej” wyświetli „Witajcie... wartość zmiennej zgodnie z zdefiniowaną wartością”. Bash nic nie wydrukuje, jeśli pole jest puste lub nie zostało utworzone. Dlatego ważne jest, aby podczas tworzenia dowolnego skryptu bash upewnić się, czy zmienna jest ustawiona poprawnie, czy nie.
Zmienne można podzielić na dwie części:
Zmienne, które są prawidłowo utworzone lub zainicjowane, nazywane są zmiennymi zdefiniowanymi. Mogą one mieć wartość zerową lub pusty ciąg znaków.
Zmienne, które nigdy nie są tworzone ani inicjowane, nazywane są zmiennymi niezdefiniowanymi.
Aby potwierdzić, czy zmienna jest ustawiona w skryptach Bash, możemy użyć -v var lub -z ${var} opcje jako wyrażenie z kombinacją polecenia warunkowego „if”.
Składnia
Poniżej znajdują się składnie wyrażeń boolowskich, których można użyć do sprawdzenia, czy zmienna jest ustawiona:
[[ -v Variable_Name ]] [[ -z Variable_Name ]]
Wyrażenie logiczne zwraca wartość „True”, jeśli zmienna jest ustawiona, i „False”, jeśli zmienna nie jest ustawiona.
edukacja Marka Zuckerberga
Poniżej znajdują się przykłady sprawdzania, czy zmienna jest ustawiona, czy nie:
Używanie opcji -v
#!/bin/bash #Script to check whether a variable is set or not using -v option A=100 #A: variable is set. if [[ -v A ]]; then echo 'Variable having name 'A' is already set.' else echo 'Variable having name 'A' is not set.' fi #B: variable is not set if [[ -v B ]]; then echo 'Variable having name 'B' is already set.' else echo 'Variable having name 'B' is not set.' fi
Wyjście
Tutaj zdefiniowano zmienną „A” i przypisano jej wartość 100, dlatego też uważa się ją za „ustawioną zmienną”. Dla zmiennej „B” nie zdefiniowaliśmy i nie przypisaliśmy żadnej wartości. W rezultacie zmienna „B” nie jest uważana za „zmienną zadaną”.
Użycie opcji -z
#!/bin/bash #Script to check whether a variable is set or not using -z option A=100 #A: variable is set. if [[ -z ${A} ]]; then echo 'Variable having name 'A' is not set.' else echo 'Variable having name 'A' is already set.' fi #B: variable is not set if [[ -z ${B} ]]; then echo 'Variable having name 'B' is not set.' else echo 'Variable having name 'B' is already set.' fi
Wyjście
Notatka:Istnieje różnica pomiędzy nieustawioną zmienną a zmienną o wartości null.
Sprawdź poniższy przykład pokazujący, że zmienna o wartości null może być zmienną ustawioną.
Przykład
VAR='' #VAR is set if [ -z ${VAR+x} ]; then echo ''VAR' is unset'; else echo ''VAR' is set, its content is '$VAR''; fi #Var is not set if [ -z ${Var+x} ]; then echo ''Var' is unset'; else echo ''Var' is set, its content is '$Var''; fi
Wyjście
Są to powszechnie używane metody, których można użyć do sprawdzenia, czy zmienna jest ustawiona, czy nie.
przechodzenie przez drzewo