- Uso da declaração “If”
- Uso da declaração “If-Else”
- Uso da declaração “If-Elif-Else”
- Uso da instrução “If” para verificar uma variável vazia
- Uso da instrução “If” com operador lógico
- Uso das declarações “If” aninhadas
- Uso da instrução “If” para verificar a existência do arquivo
- Uso da instrução “If” para verificar a existência do diretório
- Uso da instrução “If” com Regex
- Uso da declaração “Caso”
Uso da declaração “If”
Este exemplo mostra o uso simples da instrução “if” no Bash. Seis tipos de operadores de comparação podem ser usados para comparar os valores numéricos no Bash. Estes são “-eq” (igual), “-ne” (não igual), “-le” (menor que igual), “-ge” (maior que igual), “-lt” (menor que) e “ -gt” (maior que). Os usos de “-lt” e “-eq” são mostrados no script a seguir, independentemente de o número ser menor que 99 ou não ter sido verificado usando o operador “-lt”. O número é par ou ímpar e é verificado pelo operador “-eq”.
#!/bin/bash
#Atribuir um valor numérico
( ( número = cinquenta ) )
#Verifique o valor numérico usando a instrução 'if'
se [ $número -lt 99 ]
então
eco 'O número é válido.'
ser
#Verifique se o número é par ou não
se [ $ ( ( $número % 2 ) ) -eq 0 ]
então
eco 'O número é par.'
ser
Saída :
A seguinte saída aparece após a execução do script anterior:
Uso da declaração “If-Else”
O uso da instrução “if-else” é mostrado no script a seguir. Um valor de string é obtido do usuário e verifica se o valor é “AZUL” ou não usando a instrução “if-else”.
#!/bin/bash
#Pegue um valor de string do usuário
ler -p 'Digite sua cor favorita:' cor
#Verifique o valor da string usando a instrução 'if-else'
se [ ${cor^^} == 'AZUL' ]
então
eco 'Tudo bem, a cor azul está disponível.'
outro
eco ' $cor não está disponível.'
ser
Saída :
A seguinte saída aparece após a execução do script anterior se “vermelho” for considerado como entrada:
A seguinte saída aparece após a execução do script anterior se “azul” for considerado como entrada:
Uso da declaração “If-Elif-Else”
O uso da instrução “if-elif-else” é mostrado no script a seguir. Um número é retirado do usuário e verificado com os diferentes valores até que alguma correspondência seja encontrada. Se alguma correspondência for encontrada, a mensagem correspondente será impressa. Se nenhuma correspondência for encontrada, a mensagem padrão será impressa.
#!/bin/bash#Pegue o valor do id do usuário
ler -p 'Digite seu número de série:' serial
#Verifique o valor de entrada usando a instrução 'if-elif-else'
se [ $série == '4523' ]
então
eco 'Você foi selecionado no grupo A.'
Elifa [ $série == '8723' ]
então
eco 'Você foi selecionado no grupo B.'
Elifa [ $série == '3412' ]
então
eco 'Você foi selecionado no grupo C.'
outro
eco 'Você não foi selecionado' .
ser
Saída:
A seguinte saída aparece após a execução do script com o valor 8723:
A seguinte saída aparece após a execução do script com o valor 9078:
Uso da instrução “If” para verificar uma variável vazia
O método para verificar se uma variável está vazia sem usar uma instrução “if” é mostrado no script a seguir. A opção “-z” é usada na instrução “if” para realizar esta tarefa.
#!/bin/bash#Pegue o valor do id do usuário
ler -p 'Digite seu número de série:' serial
#Verifique se a variável está vazia ou não
se [ ! -Com $série ]
então
#Verifique o valor de entrada usando a instrução 'if-elif-else'
se [ $série == '690' ]
então
eco 'Você foi selecionado no time-1.'
Elifa [ $série == '450' ]
então
eco 'Você foi selecionado no time-2.'
outro
eco 'Você não foi selecionado' .
ser
outro
eco 'Nenhum número de série é fornecido.'
ser
Saída :
A seguinte saída aparece após a execução do script com o valor 690:
A seguinte saída aparece após a execução do script se nenhum valor de entrada for obtido:
Uso da instrução “If” com operadores lógicos
Três tipos de operadores lógicos podem ser usados na instrução condicional Bash. Estes são OR lógico (||), AND lógico (&&) e NOT lógico (!). Um valor de código é obtido do usuário. Se o valor de entrada não estiver vazio, o valor será verificado com dois valores de código usando OR lógico. Se o valor corresponder a algum código, a mensagem correspondente será impressa. Se nenhum código correspondente for encontrado, a mensagem padrão será impressa.
#!/bin/bash#Pegue o código do curso do usuário
ler -p 'Digite o código do curso:' código
#Verifique se a variável está vazia ou não
se [ ! -Com $código ]
então
#Verifique o valor de entrada usando a instrução 'if-elif-else'
se [ [ $código == 'CSE-106' || $código == 'CSE-108' ] ]
então
eco “Curso CSE”.
Elifa [ [ $código == 'BBA-203' || $código == 'BBA-202' ] ]
então
eco 'Curso BBA.'
outro
eco 'Código de curso inválido.'
ser
outro
eco 'Nenhum código do curso é fornecido.'
ser
Saída :
A seguinte saída aparece após a execução do script com o valor de entrada “CSE-108”:
A seguinte saída aparece após a execução do script com o valor de entrada “BBA-56”:
Uso das declarações “If” aninhadas
Quando uma condição “if” é usada dentro de outra condição “if”, ela é chamada de instrução “if” aninhada. O método de uso do “if” aninhado é mostrado no script a seguir. Dois valores de marca são obtidos do usuário. Se os valores de entrada não estiverem vazios, a primeira condição “if” verifica se o valor de “$theory” é maior ou igual a 60 ou não. Se a primeira condição “if” retornar “true”, a segunda condição “if” verifica se o valor de “$lab” é maior ou igual a 50 ou não. Se a segunda condição “if” também retornar “true”, uma mensagem de sucesso será impressa. Caso contrário, será impressa uma mensagem de falha.
#!/bin/bash#Tire a nota teórica
ler -p 'Insira a nota teórica:' teoria
#Pegue a marca do laboratório
ler -p 'Insira a marca do laboratório:' laboratório
#Verifique se as variáveis estão vazias ou não
se [ [ ! -Com $ teoria && ! -Com $laboratório ] ]
então
#Verifique os valores de entrada usando uma instrução 'if' aninhada
se [ $ teoria -ge 60 ]
então
se [ $laboratório -ge cinquenta ]
então
eco 'Você passou.'
outro
eco 'Você falhou.'
ser
outro
eco 'Você falhou.'
ser
outro
eco 'Teoria ou nota de laboratório estão vazias.'
ser
Saída :
A seguinte saída aparece se ambos ou um dos valores de entrada estiverem vazios:
A saída a seguir aparece se 78 for considerado como notas teóricas e 45 como notas de laboratório. Aqui, a segunda condição “if” retorna “falso”:
A saída a seguir aparece se 67 for considerado como notas teóricas e 56 como notas de laboratório. Aqui, ambas as condições “se” retornam “verdadeiro”:
A saída a seguir aparece se 50 for considerado como notas teóricas e 80 como notas de laboratório. Aqui, a primeira condição “if” retorna “falso”:
Uso da instrução “If” para verificar a existência do arquivo
A existência do arquivo pode ser verificada pelo script bash de duas maneiras. Uma delas é usar o operador “-f” com colchetes “[]”. Outra é usar o comando “test” e o operador “-f”. Um nome de arquivo é obtido e verifica a existência do arquivo usando a condição “if” com o operador “-f”. Em seguida, outro nome de arquivo é obtido e verifica a existência do arquivo usando a instrução “if” com o comando “test” e o operador “-f”.
#!/bin/bash#Pegue o nome do arquivo
ler -p 'Digite um nome de arquivo:' fn1
#Verifique se o arquivo existe ou não sem usar `test`
se [ -f $fn1 ]
então
eco ' $fn1 o arquivo existe.'
outro
eco ' $fn1 arquivo não existe.'
ser
#Adicionar nova linha
eco
#Pegue outro nome de arquivo
ler -p 'Digite outro nome de arquivo:' fn2
#Verifique se o arquivo existe ou não usando `test`
se teste -f $fn2 ; então
eco ' $fn2 o arquivo existe.'
#Verifique se o arquivo está vazio ou não usando `test`
se teste -Com $fn2 ; então
eco ' $fn2 arquivo está vazio.'
outro
eco ' $fn2 arquivo não está vazio.'
ser
outro
eco ' $fn2 arquivo não existe.'
ser
Saída :
A seguinte saída aparece após a execução do script, tomando “test.txt” e “testing.txt” como nomes de arquivo. De acordo com a saída, ambos os arquivos existem no local atual e o arquivo “testing.txt” está vazio:
A seguinte saída aparece após a execução do script, tomando “f1.txt” e “test.txt” como nomes de arquivo. De acordo com a saída, o arquivo “f1.txt” não existe no local atual e o arquivo “test.txt” não está vazio:
Uso da instrução “If” para verificar a existência do diretório
A existência do diretório pode ser verificada pelo script Bash de duas maneiras, como o arquivo. Uma delas é usar o operador “-d” com colchetes “[]”. Outra é usar o comando “test” e o operador “-d”. Um nome de diretório é obtido e verifica a existência do diretório usando a condição “if” com o operador “-d”. Em seguida, outro nome de diretório é obtido e verifica a existência do arquivo usando a instrução “if” com o comando “test” e o operador “-d”.
#!/bin/bash#Pegue um nome de diretório
ler -p 'Digite um nome de diretório:' você1
#Verifique se o diretório existe ou não sem usar `test`
se [ -d $dir1 ]
então
eco ' $dir1 diretório existe.'
outro
eco ' $dir1 diretório não existe.'
ser
#Adicionar nova linha
eco
#Pegue outro nome de diretório
ler -p 'Digite outro nome de diretório:' dir2
#Verifique se o arquivo existe ou não usando `test`
se teste -d $dir2
então
eco ' $dir2 diretório existe.'
outro
eco ' $dir2 diretório não existe.'
ser
Saída :
A seguinte saída aparece após a execução do script com os nomes de diretório “temp” e “files”. De acordo com a saída, ambos os diretórios existem no local atual. Em seguida, o comando “ls” é executado para verificar o conteúdo dos diretórios:
A seguinte saída aparece após a execução do script com os nomes de diretório “testing” e “new”. De acordo com a saída, ambos os diretórios não existem no local atual. Então, a saída do comando “ls” mostra que ambos os diretórios não existem:
Uso da instrução “If” com Regex
O script a seguir mostra o método de validação dos dados de entrada usando uma instrução “if” com o regex. Aqui, dois valores de entrada são obtidos do usuário e armazenados nas variáveis “$bookname” e “$bookprice”. A condição “if” é usada no script para verificar se a variável “$bookname” contém todos os caracteres alfabéticos e “$bookprice” contém um número.
#!/bin/bash#Pegue o nome e o preço do livro do usuário
eco -n 'Digite o nome do livro:'
ler nome do livro
eco -n 'Insira o preço do livro:'
ler preço do livro
#Verifique se o nome do livro contém apenas o alfabeto
se ! [ [ ' $nomedolivro ' =~ [ A-Za-z ] ] ] ; então
eco 'O nome do livro é inválido.'
outro
eco 'O nome do livro é válido.'
ser
#Verifique se o preço do livro contém apenas dígitos
se ! [ [ ' $preço do livro ' =~ [ 0 - 9 ] ] ] ; então
eco 'O preço do livro pode conter apenas dígitos.'
outro
eco 'O preço do livro é válido.'
ser
Saída :
A seguinte saída aparece após a execução do script com os valores de entrada “Bash Programming” como o nome do livro e 78 como o preço do livro:
A seguinte saída aparece após a execução do script com os valores de entrada 90 como o nome do livro e “Bash” como o preço do livro:
Uso da declaração “Caso”
A instrução “case” é a alternativa da instrução “if-elif-else”, mas todas as tarefas da instrução “if-elif-else” não podem ser realizadas usando a instrução “case”. O uso simples da instrução “case” é mostrado no script a seguir. Um valor numérico é obtido do usuário como o valor do mês atual. Em seguida, o mês correspondente é impresso se algum valor correspondente for encontrado na instrução “case”. Caso contrário, a mensagem padrão será impressa.
#!/bin/bash#Pegue o valor do mês atual em número
ler -p 'Insira o mês de hoje em número:' b_mês
#Imprima o texto antes de imprimir o nome do mês
eco -n 'O nome do mês atual é'
#Descubra e imprima o nome do mês correspondente com base na entrada
caso $b_mês em
1 | 01 ) eco 'Janeiro.' ;;
2 | 02 ) eco 'Fevereiro.' ;;
3 | 03 ) eco 'Marchar.' ;;
4 | 04 ) eco 'Abril.' ;;
5 | 05 ) eco 'Poderia.' ;;
6 | 06 ) eco 'Junho.' ;;
7 | 07 ) eco 'Julho.' ;;
8 | 08 ) eco 'Agosto.' ;;
9 | 09 ) eco 'Setembro.' ;;
10 ) eco 'Outubro.' ;;
onze ) eco 'Novembro.' ;;
12 ) eco 'Dezembro.' ;;
* ) eco 'não encontrado.' ;;
esac
Saída :
A seguinte saída aparece após a execução do script com o valor 6:
A seguinte saída aparece após a execução do script com o valor 09:
A seguinte saída aparece após a execução do script com o valor 14:
Conclusão
Diferentes usos da lógica condicional usando as instruções “if” e “case” são mostrados nos 10 exemplos deste tutorial. O conceito de uso da lógica condicional no Bash será esclarecido para os novos usuários do Bash após a leitura deste tutorial.