Uma variável costuma ser chamada de caixa que contém um nome e o conteúdo. Um comando simples, por exemplo, 'echo Hello $Var_Name' imprimirá 'Hello...o valor da variável conforme definido'. O Bash não imprimirá nada se a caixa estiver vazia ou não criada. É por isso que é importante ter certeza se uma variável está definida corretamente ou não ao criar qualquer script bash.
As variáveis podem ser categorizadas em duas partes:
Variáveis que são criadas ou inicializadas corretamente são conhecidas como Variáveis Definidas. Eles podem ter valor zero ou uma string vazia.
Variáveis que nunca são criadas ou inicializadas são conhecidas como Variáveis Indefinidas.
Para confirmar se uma variável está definida ou não no Bash Scripting, podemos usar -v var ou -z ${var} opções como uma expressão com a combinação do comando condicional 'if'.
Sintaxe
A seguir estão as sintaxes da expressão booleana que podem ser usadas para verificar se a variável está definida:
[[ -v Variable_Name ]] [[ -z Variable_Name ]]
A expressão booleana retorna 'True' se a variável estiver definida e 'False' se a variável não estiver definida.
xor cpp
A seguir estão os exemplos para verificar se uma variável está definida ou não:
Usando a opção -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
Saída
Aqui, a variável 'A' é definida e recebe um valor de 100 e, portanto, é considerada como 'variável definida'. Para a variável 'B', não definimos ou atribuímos nenhum valor. Como resultado, a variável 'B' não é considerada como 'variável definida'.
Usando a opção -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
Saída
Observação:Há uma diferença entre uma variável não definida e uma variável com valor nulo.
Confira o exemplo a seguir demonstrando que a variável com valor nulo pode ser uma variável definida.
Exemplo
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
Saída
Estes são os métodos comumente usados que podem ser usados para verificar se uma variável está definida ou não.
espalhar árvores