50% de desconto todos os planos, por tempo limitado. A partir de $2.48/mo
10 min restantes
Servidores e SO

Bash If Statement: Sintaxe, Variações, Casos de Uso, Comandos e Mais!

Pio Bodenmann By Pio Bodenmann 10 min de leitura Atualizado em 28 de janeiro de 2024
scripts bash

Em scripting de shell, instruções Bash if desempenham um papel crucial ao permitir que programadores criem caminhos de execução condicional baseados em diferentes situações. Basicamente, instruções if nos permitem tomar decisões dentro de scripts Bash, considerando fatores como resultados de testes, entrada do usuário ou estados do sistema. É como uma forma de navegar por diferentes possibilidades.

Ao usar scripting Bash, uma instrução if segue uma estrutura específica. Normalmente começa com a palavra-chave "if", seguida pela condição que precisa ser avaliada, a palavra-chave "então" e um ou mais comandos a executar se a condição for verdadeira.

Para tornar as coisas mais flexíveis, a instrução if também pode incluir uma instrução "elif" (senão se) opcional, que entra em jogo quando a condição inicial é falsa. Isso nos permite testar uma condição adicional e proceder adequadamente. Além disso, a instrução if pode ter uma instrução "else" opcional, que é executada se nenhuma das condições for verdadeira.

Ao combinar instruções if com outros comandos Bash e recursos de shell scripting, programadores podem criar scripts avançados capazes de automatizar tarefas e processos complexos. Continue conosco para descobrir mais sobre a instrução Bash if, incluindo sua sintaxe, casos de uso e exemplos!

Sintaxe da Instrução if do Bash

Sintaxe do Bash refere-se às regras que governam a estrutura e a gramática dos comandos e scripts escritos na linguagem shell Bash. A sintaxe do Bash inclui uma variedade de construções e elementos, como:

  • Comandos: São os programas executáveis individuais ou funções internas do shell que são usadas para realizar tarefas específicas. Você passará a maior parte do tempo trabalhando com programação Bash com essas linhas.
  • Argumentos: São valores passados aos comandos para especificar opções, parâmetros ou dados de entrada. Pense neles como condições estabelecidas para um comando especificar seus parâmetros de execução.
  • Variáveis: São símbolos que representam valores que podem ser atribuídos, manipulados ou usados em expressões. São comumente usados para determinar os valores com os quais comandos e argumentos precisam lidar.
  • Redirecionamento: É o processo de redirecionar entrada, saída ou erros para ou de arquivos, dispositivos ou outros comandos. Sem isso, há grande chance de seus comandos direcionarem para o destino errado e bagunçarem seu código.
  • Canos: É um mecanismo para conectar a saída de um comando à entrada de outro comando. Geralmente são usados para executar linhas de comando condicionais avançadas em programas grandes e criar linhas de comando interconectadas.
  • Estruturas de controle: São construções que controlam o fluxo de execução dos comandos, como loops, condicionais e funções. Compreender a estrutura de controle é fundamental para criar linhas de comando inovadoras e adiciona outro nível de profundidade ao seu código.
  • Comentários: São anotações ignoradas pelo shell e usadas para documentar código ou fornecer explicações. São pontos de referência importantes ao realizar análise e depuração, especialmente em projetos em grupo.

A sintaxe do Bash deve ser escrita corretamente para que o shell interprete e execute os comandos. Erros de sintaxe podem fazer com que o shell produza mensagens de erro ou comportamento inesperado.

Aqui está a instrução if do Bash em ação:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

No caso que temos aqui, a "condição" refere-se a um teste que produz um resultado verdadeiro ou falso. Quando a condição é verdadeira, os comandos subsequentes especificados após a palavra-chave "then" são executados. Agora, digamos que queremos avaliar uma condição adicional. Podemos usar a palavra-chave "elif" para isso. Ela fornece uma forma de considerar outra possibilidade. Agora, se nenhuma das condições for verdadeira, os comandos especificados após a palavra-chave "else" entram em ação. É como um plano de contingência. Por fim, para indicar a conclusão da instrução if, usamos a palavra-chave "fi".

Como as Instruções do Bash Funcionam?

Quando se trata de scripting Bash, a instrução if é bastante útil para guiar o fluxo do script com base no resultado de um teste condicional. Seu propósito gira em torno de avaliar uma condição e, se for verdadeira, executar um conjunto específico de comandos.

Agora, vamos dar uma olhada em como as coisas geralmente se desdobram quando uma instrução if entra em jogo em um script Bash. O script avalia a condição mencionada na instrução if. Se a condição for verdadeira, os comandos listados no bloco "then" são executados.

Porém, se a condição for falsa, o script passa a avaliar quaisquer condições elif adicionais. Se alguma dessas condições for verdadeira, os comandos do bloco elif correspondente são executados. Nos casos em que nenhuma das condições especificadas nas instruções if e elif é verdadeira, o script reconhece isso e procede a executar os comandos especificados no bloco else (se um bloco else foi incluído).

Essencialmente, a instrução if serve como um meio para facilitar a tomada de decisões dentro de um script, permitindo que ele percorra diferentes caminhos de execução dependendo do resultado do teste. O teste em si pode levar em conta vários fatores, como o resultado de um comando ou o valor atribuído a uma variável.

Instrução if do Bash Exemplificada

Agora vamos sair da teoria básica e ver como uma instrução if do Bash pode ser usada no desenvolvimento ativo de código. Aqui está um exemplo que demonstra como uma instrução if do Bash funciona:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

Neste exemplo, a instrução if avalia o valor da variável x. Se x for maior que 4, o script executa o comando para imprimir "x é maior que 4". Se x for menor ou igual a 4, o script executa o comando para imprimir "x é menor ou igual a 4".

Agora que você tem uma compreensão sólida da instrução if do Bash básica e de como ela funciona, vamos aprofundar nas variações e comandos relacionados e aprender mais sobre instruções if básicas, instruções if aninhadas, if else do Bash, if elif else e instruções case, uma a uma.

Instruções If Básicas

Vamos começar com a instrução if do bash básica. A instrução if no Bash verifica se uma condição é verdadeira e executa um bloco de códigos relacionados de acordo. Aqui está a sintaxe:

if [ condition ]
then
  commands
fi

No caso que temos aqui, o script avalia a condição, e se ela for verdadeira, os comandos especificados são executados. Se a condição for falsa, o script passa para o próximo comando sem executar o bloco dentro da seção "then".

Instruções If Aninhadas

Uma instrução if aninhada, como o nome criativo sugere, é uma instrução if que está "aninhada" dentro de outra instrução if. Essa estrutura aninhada permite testes e análises mais complexas dentro de um script. Aqui está um exemplo de uma instrução if aninhada:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

Você pode ver nos comandos que o script avalia condition1 como primeiro passo. Se condition1 for verificada como verdadeira, então avalia condition2. Se condition2 também for verdadeira, o script executa os comandos necessários.

Instruções Bash If Else

A instrução if else do Bash permite que você tome decisões dentro do seu script com base em se uma condição é verdadeira ou falsa, permitindo execução de código mais avançada e contextual. Veja como a estrutura fica:

if [ condition ]
then
  commands1
else
  commands2
fi

Essa construção garante que, se a condição for atendida, seu script execute "commands1" rapidamente. Porém, se a condição for falsa, ele alternará para executar "commands2".

Instruções If Elif Else

Às vezes você precisa considerar múltiplas condições e seus resultados respectivos. A instrução if elif else permite que você faça exatamente isso. Observe a sintaxe a seguir:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Aqui, seu script avalia condition1 primeiro. Se for verificada como verdadeira, executará commands1 rapidamente. Porém, se condition1 for falsa, seu script passa a avaliar condition2. Se condition2 for verdadeira, prossegue para executar commands2. E se tanto condition1 quanto condition2 forem falsas, seu script executará a alternativa, que é executar commands3.

Instruções de Caso

No Bash, você tem a instrução case, que funciona de forma similar a um switch statement encontrado em outras linguagens de programação. Ela oferece uma maneira de executar diferentes conjuntos de comandos com base no valor de uma variável. Veja a estrutura:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Aqui, o script avalia a expression variable e a compara com vários padrões. Quando uma correspondência é encontrada, o conjunto de comandos correspondente é executado. Porém, se nenhuma correspondência for encontrada, os comandos padrão são executados elegantemente. O padrão asterisco (*) atua como um curinga, correspondendo a tudo o que não foi coberto.

Operadores Lógicos Bash

Outra parte importante dos mecanismos da instrução if do Bash são os Operadores Lógicos. Esses operadores permitem que você combine múltiplas condições, permitindo que você tome decisões com base na veracidade ou falsidade dessas condições combinadas. Bash incorpora três operadores lógicos principais para uso em instruções if. Aqui estão exemplos dos três tipos principais de comandos de operador lógico.

  • Bash AND (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Ou lógico (||):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Não igual a:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Conclusão

Neste post, fornecemos um guia introdutório sobre instruções if do Bash e como usá-las. Também discutimos como elas podem tornar seu código muito mais limpo e funcional. Ao usar essas instruções condicionais efetivamente, você pode criar scripts poderosos capazes de lidar com tarefas complexas e tomada de decisões.

Você é novo no mundo do Linux? Deixe-nos ser sua luz guia nessa jornada empolgante! Nossa Linux VPS é o ponto de partida perfeito para iniciantes, oferecendo simplicidade sem sacrificar poder. Com interfaces amigáveis e suporte especializado, você descobrirá que é mais fácil do que nunca aproveitar as capacidades de um servidor Linux. Esteja você configurando um site, testando aplicações ou explorando o vasto mundo do Linux, nossa Linux VPS oferece um ambiente seguro e sem complicações. Dê seus primeiros passos no universo Linux com confiança. Confira nossas opções de Linux VPS hoje mesmo e comece sua aventura com Linux!

Hospedagem VPS Linux

Pegue um Linux VPS econômico ou premium para hospedar seu site ou desktop remoto, com o preço mais barato disponível. VPS Executando em Linux KVM para maior eficiência e funcionando em hardware poderoso com armazenamento NVMe SSD para maior velocidade.

Ler mais

Perguntas Frequentes

Posso usar operadores lógicos em instruções if do Bash?

Sim, você pode usar operadores lógicos como & e '||' em instruções if do Bash. Por exemplo, if [ $var -gt 0 ] && [ $var -lt 10 ]; then … executará o bloco de código se $var for maior que 0 e menor que 10.

Posso usar múltiplas condições em uma única instrução if?

Sim, você pode usar múltiplas condições do Bash em uma única instrução if usando operadores lógicos como -a (AND) ou -o (OR) para combiná-las. Por exemplo, if [ $var -gt 0 -a $var -lt 10 ]; then … executará o bloco de código se $var é maior que 0 E menor que 10.

Posso usar substituição de comando em declarações if do Bash?

Sim, você pode usar substituição de comando em declarações if do Bash colocando o comando entre $() ou backticks (). Por exemplo, if [ $(whoami) == "root" ]; then … executa o bloco de código se o usuário atual for root.

[[ vs [ vs ( vs ((: Qual é a diferença entre esses operadores do Bash?

Em resumo, [[ é usado para testes condicionais avançados. [ é usado para testes condicionais básicos. ( é usado para agrupamento de subshell e execução de comandos. (( é usado para operações aritméticas.

 

Compartilhar

Mais do blog

Continue lendo.

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud imagem de capa com painéis de apps ao redor de um painel Cosmos.
Servidores e SO

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud: Arquivos, Mídia, Senhas, Automação e Mais!

Depois que você configurou Cosmos Cloud e quer ver quais apps funcionam bem com ele, ou talvez ainda nem tenha decidido usar Cosmos e só quer ver como se encaixa no seu fluxo de trabalho

Nick PrataNick Prata leitura de 16 minutos
Portainer vs Cosmos Cloud para Gerenciar Apps Docker capa com diagrama de configuração híbrida e blocos de acesso vs operações neon.
Servidores e SO

Portainer vs Cosmos Cloud: A Melhor Opção para Gerenciamento de Apps Docker

Se você já conhece Docker e quer apenas um jeito mais limpo de executar uma pilha de apps em crescimento, aqui está a resposta curta sobre Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para o controle direto

Nick PrataNick Prata 14 min de leitura
Cosmos Cloud vs CasaOS vs Umbrel gráfico de recursos mostrando três caminhos auto-hospedados dentro de um mundo de rede em nuvem abstrata.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual Plataforma Auto-hospedada se Encaixa na Sua Configuração?

A resposta curta é que CasaOS ainda é o lugar mais fácil para começar, Umbrel tem o visual mais limpo e curado, e Cosmos Cloud faz mais sentido quando você quer controle mais apertado sobre seu domínio

Nick PrataNick Prata 11 minutos de leitura

Pronto para fazer o deploy? A partir de $2,48/mês.

Cloud independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Reembolso em 14 dias.