Como usar as instruções Bash “If -Z” e “if -n” para testar a string

Como usar as instruções Bash “If -Z” e “if -n” para testar a string

A instrução "se" é usada no Bash para ramificação condicional, como em outras linguagens de programação. A declaração "se" pode ser usada para verificar as diferentes condições em Bash. Os diferentes tipos de operadores de comparação, operadores lógicos e opções são usados ​​com a instrução "se" para testar. Os usos da opção "-z" e "-n" para testar os valores da string usando a instrução "se" em bash são mostrados neste tutorial.

Usando a declaração "se -z"

Às vezes, é necessário verificar se uma variável de string está vazia ou se contém uma sequência de comprimento zero. Existem muitas opções em Bash para fazer esta tarefa. Usando a opção "-z" com a instrução "se" é uma das maneiras de verificar se uma variável está vazia ou não. Os usos da opção "se -z" são mostrados na próxima parte do tutorial.

Exemplo 1: Verificando a declaração "se -z" usando "[]"

Crie um arquivo bash com o seguinte script em que o uso da declaração "se -z" com o "[]" é mostrado. Duas entradas são retiradas do usuário. Se algum dos valores de entrada estiver vazio, uma mensagem de erro será impressa. Caso contrário, a soma dos dois valores de entrada é calculada e impressa.

#!/BIN/BASH
#Leia o primeiro número
Leia -P "Digite o primeiro número:" N1
#Leia o segundo número
Leia -P "Digite o segundo número:" N2
#Verifique qualquer entrada está vazia ou não
Se [[-z "$ n1" || -z "$ n2"]]
então
#Print a mensagem de erro
eco "o primeiro ou o segundo número está vazio."
outro
#Calcular a soma
soma = $ (($ n1+$ n2))
#Print O valor de soma
eco "a soma de $ n1 e $ n2 é $ sum."
fi


Saída:

A saída a seguir aparece se o script for executado sem nenhum argumento:


A saída a seguir aparece se o script for executado com um argumento:


A saída a seguir aparece se o script for executado com dois argumentos:


Exemplo 2: Verificando a declaração "se -z" com o comando "teste"

Crie um arquivo bash com o seguinte script, onde o uso da instrução "if -z" com a "teste”Comando é mostrado. Uma entrada é obtida do usuário que deve ser numérico. Se o valor de entrada estiver vazio, uma mensagem de erro será impressa. Se o valor de entrada não estiver vazio, mas não contiver um valor numérico, outra mensagem de erro será impressa. Se um número inteiro for tomado como uma entrada, o valor de entrada será impresso.

#!/BIN/BASH
#Leia o valor da idade
Leia -P "Entre na sua idade:" Idade
#Scecione se o valor de entrada está vazio ou não
Se teste -z "$ AGE"
então
#Print a mensagem de erro para vazio
eco "o valor de entrada está vazio."
saída
fi
#Scecione se o valor de entrada é um número ou não
se ! [[$ AGE = ~ ^[0-9]+$]]; então
#Print A mensagem de erro para dados não numéricos
eco "o valor da idade deve ser um número."
outro
#Print O valor de entrada
eco "Você tem $ AGE ANOS."
fi


Saída:

O seguinte saída APEPARS se o script for executado com o valor de entrada numérica:


A saída a seguir aparece se o script for executado com o valor de entrada da string:

Usando a declaração "se -n"

Às vezes, é necessário verificar se uma variável de string não está vazia ou se contém um valor de string mais que zero comprimento. Existem muitas opções em Bash para fazer esta tarefa. Usando a opção "-n" com a declaração "se" é uma das maneiras de verificar se uma variável não está vazia ou não. Os usos da opção "se -n" são mostrados na próxima parte do tutorial.

Exemplo 1: Verificando a declaração "se -n" usando "[]"

Crie um arquivo bash com o seguinte script em que o uso da declaração "se -n" com o "[]" é mostrado. Um valor de entrada é retirado do usuário. Se o valor de entrada estiver vazio, uma mensagem de erro será impressa. Caso contrário, o valor da entrada é impresso.

#!/BIN/BASH
#Leia o nome do livro
Leia -P "Digite o nome do livro:" Livro
#Verifique se a entrada não for muito zero ou não
se ! [-n "$ book"]
então
#Print a mensagem de erro
eco "o nome do livro não pode estar vazio."
outro
#Print O valor de entrada
eco "o nome do livro é $ livro."
fi


Saída:

A saída a seguir aparece se o script for executado com qualquer valor de entrada:


A saída a seguir aparece se o script for executado com um valor de entrada de string:


Exemplo 2: Verificando a declaração "se -n" com o comando "teste"

Crie um arquivo bash com o seguinte script onde o uso da instrução "if -n" com o comando "teste" é mostrado. A primeira entrada é uma string e a segunda entrada é numérica. Se ambos os valores de entrada não estiverem vazios, uma mensagem de erro será impressa. Se o segundo valor de entrada for não numérico, caso contrário, os valores de entrada serão impressos.

#!/BIN/BASH
#Leia o nome do livro
Leia -P "Digite o nome do livro:" Livro
#Leia o nome do livro
Leia -P "Digite o preço do livro:" Preço
#Scecione se a entrada é diferente de zero ou não
Se teste -n "$ book" && test -n "$ price"
então
#Scecione se o valor de entrada é um número ou não
se ! [[$ price = ~ ^[0-9]+$]]; então
#Print A mensagem de erro para dados não numéricos
eco "o valor do preço deve ser um número."
outro
#Print Os valores de entrada
eco "Nome do livro é $ livro."
eco "o preço do livro é $ preço."
fi
outro
#Print a mensagem de erro
eco "Nome do livro ou preço não pode estar vazio."
fi


Saída:

A saída a seguir aparece se o script for executado com dois valores de entrada vazios:


A saída a seguir aparece se o script for executado com um valor de entrada vazio:


A saída a seguir aparece se o script for executado com dois valores de entrada válidos não vazios:


A saída a seguir aparece se o script for executado com dois valores não vazios e um valor de preço inválido:

Conclusão

Os usos das declarações "If -z" e "If -n" são explicadas neste tutorial usando vários exemplos para ajudar os usuários do Bash a aplicar adequadamente essas instruções em seu script.