Testar a existência de variáveis com test -z
Nesta etapa, você aprenderá como verificar se uma variável está vazia ou não definida usando o comando test com a opção -z. Isso é útil em scripts para tomar decisões com base em se uma variável possui um valor.
O comando test é usado para avaliar expressões condicionais. A opção -z verifica se o comprimento de uma string é zero. Se a string estiver vazia (ou a variável não estiver definida), o teste é verdadeiro.
Vamos testar se uma variável chamada MY_VARIABLE está definida. Primeiro, vamos garantir que ela não esteja definida.
Digite o seguinte comando e pressione Enter:
unset MY_VARIABLE
O comando unset remove uma variável. Agora, vamos usar test -z para verificar se MY_VARIABLE está vazia. Vamos combiná-lo com echo para ver o resultado do teste. O operador && executa o segundo comando somente se o primeiro comando for bem-sucedido (retorna um valor verdadeiro, o que para test significa que a condição foi atendida).
Digite o seguinte comando e pressione Enter:
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Como acabamos de desfazer a definição de MY_VARIABLE, a condição test -z "$MY_VARIABLE" é verdadeira (a variável está vazia), então o comando echo será executado.
Você deve ver a saída:
MY_VARIABLE is empty or not set
Agora, vamos definir um valor para MY_VARIABLE.
Digite o seguinte comando e pressione Enter:
MY_VARIABLE="Hello"
Agora, vamos executar o mesmo comando test -z novamente.
Digite o seguinte comando e pressione Enter:
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Desta vez, MY_VARIABLE tem o valor "Hello", então não está vazia. A condição test -z "$MY_VARIABLE" é falsa, e o comando echo não será executado.
Você não deve ver nenhuma saída do comando echo desta vez.
Isso demonstra como test -z pode ser usado para verificar se uma variável está vazia ou não definida. Este é um conceito fundamental usado em scripts de shell para lógica condicional.