Променливата често се нарича кутия, съдържаща име и съдържание. Проста команда, например 'echo Hello $Var_Name' ще отпечата 'Hello... стойността на променливата, както е дефинирана'. Bash няма да отпечата нищо, ако полето е празно или не е създадено. Ето защо е важно да се уверите дали дадена променлива е зададена правилно или не, докато създавате bash скрипт.
Променливите могат да бъдат категоризирани в две части:
Променливите, които са правилно създадени или инициализирани, са известни като дефинирани променливи. Те могат да имат нулева стойност или празен низ.
Променливи, които никога не се създават или инициализират, са известни като недефинирани променливи.
За да потвърдим дали дадена променлива е зададена или не в Bash Scripting, можем да използваме -v var или -z ${var} опции като израз с комбинация от условна команда 'if'.
Синтаксис
Следва синтаксисът на булевия израз, който може да се използва за проверка дали променливата е зададена:
[[ -v Variable_Name ]] [[ -z Variable_Name ]]
Булевият израз връща „Истина“, ако променливата е зададена, и „Невярно“, ако променливата не е зададена.
python запазва json във файл
Следват примери за проверка дали дадена променлива е зададена или не:
Използване на опция -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
Изход
Тук променливата „A“ е дефинирана и й е присвоена стойност 100 и следователно се счита за „зададена променлива“. За променлива „B“ не сме дефинирали или присвоили никаква стойност. В резултат на това променливата „B“ не се счита за „настроена променлива“.
Използване на опция -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
Изход
Забележка:Има разлика между ненастроена променлива и променлива с нулева стойност.
Вижте следния пример, показващ, че променливата с нулева стойност може да бъде зададена променлива.
Пример
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
Изход
Това са често използваните методи, които могат да се използват за проверка дали дадена променлива е зададена или не.
regex в java