A programação Bash às vezes pode ser divertida. Saber como separar seus ifs de seus outros ifs ou elifs como são chamados no Bash também pode ser divertido. Descubra como corrigir suas condicionais Bash.
índice
- Condicionais Bash: if, then, else, elif
- Teste de acerto condicional: se…então…fi
- Teste de acerto condicional: outras variáveis AND
- Teste de acerto condicional: I Aninhamento e controles avançados
- Teste de acerto condicional: elif
- Conclusão
Condicionais Bash: if, then, else, elif
Em todas as linguagens de programação, existem condicionais: declarações condicionais que permitem testar uma variedade de situações. Na maioria das linguagens de programação, um if
básico permite testar o estado ou valor de uma determinada variável de programação. Por exemplo, você pode verificar se uma variável está vazia ou não.
Para obter mais informações sobre variáveis Bash, você pode conferir nosso artigo sobre funções Bash e variáveis locais.
Bash é um shell Linux real e uma linguagem de programação completa. Ele também inclui muitas extensões para as instruções condicionais mais comuns em sua linguagem de script/programação. Por exemplo, você pode pesquisar arquivos para ver se uma instrução grep -q
foi bem-sucedida e assim por diante.
Além disso, instruções condicionais complexas e até mesmo subshells podem ser especificadas diretamente no arquivo if
etc. própria declaração condicional. Isso torna o Bash adequado para manipulação/disputa de big data, análise de texto e muitas outras tarefas do tipo DevOps.
Este artigo se concentrará principalmente em como obter as condicionais corretas, usando instruções if...then
, else
e elif
. Um artigo futuro discutirá condições de teste mais complexas, usando subshells dentro de instruções condicionais, etc.
Teste de acerto condicional: se…então…fi
Escrever uma instrução condicional no Bash é fácil e direto. Você pode até digitá-los diretamente na linha de comando do Bash, sem usar um script:
if [ "1" == "1" ]; então echo 'true'; fi
O resultado é certo , pois 1
combina com 1
. Observe que a maneira de testar a igualdade dos elementos to é usar ==
e não =
. Este é o caso em muitos idiomas e muitas vezes é feito para evitar, ou separar nitidamente, "atribuição" (ou seja, definir uma variável para um determinado valor).
Observe também que terminamos cada instrução condicional if
com uma instrução final fi
(o oposto de I ). Isso nos permite especificar mais linhas depois disso. cláusula then
antes de terminar a seção then.
Teste de acerto condicional: outras variáveis AND
Vamos colocar isso em um pequeno script agora, adicionar um arquivo de seção else
e adicionar algumas variáveis de controle.
Definimos test.sh
da seguinte forma:
#!/bin/bash VAR1=1 VAR2=1 if [ "${VAR1}" == "${VAR2}" ]; então echo 'true' senão echo 'falso' fi
Então vamos tornar este pequeno script executável emitindo chmod +x test.sh
que define o sinalizador executável para o script test.sh
Dentro do script, configuramos VAR1
para VAR2
com o valor 1. Em seguida, postaremos uma instrução if que compara as duas variáveis e echo true
se a comparação for aprovada e false
se a comparação falhar. O resultado é uma saída true
correta.
Teste de acerto condicional: I Aninhamento e controles avançados
Podemos expandir ainda mais o último exemplo e verificar a desigualdade usando !=
em vez de ==
, adicionar loops aninhados e usar algumas verificações de variáveis Bash nativas avançadas ao mesmo tempo.
Definimos test2.sh
da seguinte forma:
#!/bin/bash VAR1="" VAR2="" if [ ! -z "${VAR1}" -a ! -z "${VAR2}" ]; então if [ "${VAR1}" != "${VAR2}" ]; then echo 'true' else echo 'false' fi else echo "Assert: Ou VAR1 (valor: '${VAR1}'), ou VAR2 (valor: '${VAR2}'), ou ambos, estão vazios!" fi
Neste script, substituímos nossos valores codificados de 1
para VAR1
e VAR2
por duas variáveis especiais, a saber, ${1}
é ${2}
, o que significa a primeira e a segunda opção/parâmetro , passados da linha de comando ao roteiro. Tornamos nosso script executável novamente e o executamos com várias combinações de opções erradas.
O código -z
significa que ele verifica se um parâmetro está vazio ou não. Negamos o resultado (ou seja, sim se torna não e não se torna sim, ou melhor/melhor verdadeiro se torna falso e falso se torna verdadeiro) usando um ponto de exclamação ( !
) na frente da verificação -z
. Em seguida, também usamos um arquivo de cláusula IS (ou seja, ambos os lados da cláusula IS devem ser verdadeiros).
Em outras palavras, a maneira como você pode ler o arquivo if [ ! -z "${VAR1}" -a ! -z "${VAR2}" ];
a linha de linguagem natural é Tanto VAR1 quanto VAR2 não devem estar vazias. Podemos ver que nossas variáveis são verificadas corretamente por esta declaração condicional, pois toda vez que tentamos passar apenas uma variável, ou duas variáveis, uma das quais está vazia, o programa pula para a cláusula else
que relata nosso mau uso das opções. roteiro.
Finalmente, dentro da primeira instrução condicional if
, temos uma instrução condicional secundária (jargão de computador: nested ). Esta declaração verifica nossa desigualdade usando não é a mesma ( !=
). De fato, quando passamos dois valores diferentes, ou seja, 1
é 2
para o script, o resultado é verdadeiro: esses números não são iguais.
Teste de acerto condicional: elif
À medida que você começa a desenvolver instruções mais complexas e profundamente aninhadas no Bash, logo descobrirá que há um caso em que você está se ramificando cada vez mais fundo no código aninhado e o código começa a parecer mais complexo devido a vários níveis de profundidade. . Muitas vezes, embora nem sempre, você pode usar uma instrução elif
nesses casos. Por exemplo:
#!/bin/bash if [ "" -lt 2 ]; então echo "menos de 2" senão se [ "" -lt 4 ]; então echo "menos de 4" senão se [ "" -lt 6 ]; então echo "menos de 6" fi fi fi if [ "" -lt 2 ]; então echo "menos de 2" elif [ "" -lt 4 ]; então echo "menos de 4" elif [ "" -lt 6 ]; então echo "menos de 6" fi
Após definir este script como test3.sh, nós o tornamos executável e o executamos.
Os dois blocos de código fazem exatamente a mesma coisa: verificam se o valor passado como primeira opção para o script ( 1, 3 e 5 respectivamente) é menor que ( -lt
) os valores 2, 4 e 6 em sequência. Vemos que os dois blocos funcionam exatamente da mesma maneira.
No entanto, o segundo bloco de código, que emprega o uso de instruções elif
(que também podem ser lidas como instruções if) em vez de outros blocos de instruções condicionais ..if. O segundo bloco de código não é apenas mais curto, mas também mais limpo, claro e fácil de ver. Observe que você também pode combinar instruções else
is elif
em combinação, aninhadas, etc.
Conclusão
Escrever código Bash é, tem sido e provavelmente será um exercício divertido para muitos por algum tempo. Criar declarações condicionais bem elaboradas é parte integrante e comum disso. Neste breve tutorial, revisamos as instruções if
, then
, else
, elif
e fi
. Usando as várias instruções condicionais, você poderá criar um código limpo e agradável. Desfrutar!
- Apple Watch não está carregando corretamente? Veja como corrigi-lo
- Os 10 melhores filmes de terror no Amazon Prime (janeiro de 2020)
descubra mais conteúdo
Google Pixel Watch também tem detecção de queda, mas não até o próximo ano
As melhores xícaras de café aquecidas de 2022
Como automatizar seu iPhone com base na hora, atividade ou localização
"Isso deve ter sido antes do meu tempo"
Por que a NASA enviou Snoopy para a Lua? – Revisão geek
O que é uma carga fantasma?
Deixe uma resposta Cancelar resposta
O que é IF no bash?
A instrução if no Bash
A palavra-chave fi é usada para encerrar a instrução if . Se a expressão-teste não for verdadeira, nenhuma das declarações será executada. Para tornar nosso código mais legível e organizado, podemos usar um recuo de 4 ou 2 espaços.
Como fazer condicionais no bash?
Em Bash , essa coisa condicional é materializada com if then else e com case.
Comparando no Bash
- Você não precisa usar aspas em torno de variáveis, colchetes duplos funcionam bem com espaços.
- Com [[ você pode usar os operadores || e &&, bem como < e >` para comparações de strings.
Como usar IF no Linux?
O if começa com o if seguido pela expressão condicional e pela palavra-chave then. A instrução termina com a palavra-chave fi. Se TEST-COMMAND for avaliado como True STATEMENTS STATEMENTS é executado. Se TEST-COMMAND retornar False, nada acontece, STATEMENTS são ignorados.
Como usar no bash?
Sintaxe: while Loop no Bash
Se a condição for verdadeira, executamos as instruções no loop. Se a condição for falsa, saímos do loop. As instruções command-1 a command-n são instruções que são executadas em um loop até que a condição se torne falsa.