Como dominar a lógica condicional no Bash

Como Dominar A Logica Condicional No Bash



O uso da lógica condicional é uma parte essencial de qualquer linguagem de programação. A lógica condicional pode ser implementada no Bash de diferentes maneiras para resolver os problemas de programação. Os métodos de uso da lógica condicional no Bash através dos diferentes tipos de instruções “if” e “case” para comparar a string e os valores numéricos, verificar o conteúdo da variável, verificar a existência do arquivo ou diretório, etc. .

Lista de conteúdo:

  1. Uso da declaração “If”
  2. Uso da declaração “If-Else”
  3. Uso da declaração “If-Elif-Else”
  4. Uso da instrução “If” para verificar uma variável vazia
  5. Uso da instrução “If” com operador lógico
  6. Uso das declarações “If” aninhadas
  7. Uso da instrução “If” para verificar a existência do arquivo
  8. Uso da instrução “If” para verificar a existência do diretório
  9. Uso da instrução “If” com Regex
  10. 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:



  p1





Ir para o topo

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:

  p2-1

A seguinte saída aparece após a execução do script anterior se “azul” for considerado como entrada:

  p2-2

Ir para o topo

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:

  p3-1

A seguinte saída aparece após a execução do script com o valor 9078:

  p3-2

Ir para o topo

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:

  p4-1

A seguinte saída aparece após a execução do script se nenhum valor de entrada for obtido:

  p4-2

Ir para o topo

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”:

  p5-1

A seguinte saída aparece após a execução do script com o valor de entrada “BBA-56”:

  p5-2

Ir para o topo

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:

  p6-1

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”:

  p6-2

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”:

  p6-3

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”:

  p6-4

Ir para o topo

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:

  p7-1

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:

  p7-2

Ir para o topo

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:

  pág. 8-1

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:

  p8-2

Ir para o topo

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:

  p9-1

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:

  p9-2

Ir para o topo

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:

  p10-1

A seguinte saída aparece após a execução do script com o valor 09:


  p10-2

A seguinte saída aparece após a execução do script com o valor 14:

  p10-3

Ir para o topo

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.