50% de desconto todos os planos, por tempo limitado. Começando em $2.48/mo
Faltam 10 minutos
Servidores e SO

Instrução Bash If: sintaxe, variações, casos de uso, comandos e muito mais!

Pio Bodenmann By Pio Bodenmann 10 minutos de leitura Atualizado em 28 de janeiro de 2024
script bash

No shell script, as instruções if do Bash desempenham um papel crucial, permitindo que os programadores criem caminhos de execução condicionais com base em diferentes situações. Basicamente, as instruções if nos permitem tomar decisões em 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 scripts Bash, uma instrução if segue uma estrutura específica. Normalmente começa com o “if”, seguida pela condição que precisa de avaliação, a palavra-chave “então” Palavra-chave e um ou mais comandos a serem executados se a condição for verdadeira.

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

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

Sintaxe da instrução Bash If

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

  • Comandos: esses são os programas executáveis ​​individuais ou os componentes internos do shell usados ​​para executar tarefas específicas. Você passará a maior parte do tempo lidando com a programação Bash com essas lindas linhas.
  • Argumentos: são valores passados ​​aos comandos para especificar opções, parâmetros ou dados de entrada. Pense neles como condições definidas 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. Eles são comumente usados ​​para determinar os valores com os quais comandos e argumentos devem lidar.
  • Redirecionamento: este é o processo de redirecionar entradas, saídas ou erros de ou para arquivos, dispositivos ou outros comandos. Sem isso, há uma grande chance de que seus comandos direcionem o destino errado e atrapalhem seu código.
  • Tubos: Este é 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 para criar linhas de comando entrelaçadas.
  • Estruturas de controle: são construções que controlam o fluxo de execução de comandos, como loops, condicionais e funções. Compreender a estrutura de controle é fundamental para criar novas linhas de comando e fornece 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. Estes são pontos de referência importantes ao realizar análises e depuração, especialmente em projetos de grupo.

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

Aqui está a instrução Bash if 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 for verdadeira, os comandos subsequentes especificados após a palavra-chave “then” serão executados. Agora, digamos que queremos avaliar uma condição adicional. Podemos usar a palavra-chave “elif” para fazer isso. Ele fornece uma maneira 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 alternativo. Por último, para indicar a conclusão da instrução if, usamos a palavra-chave “if”.

Como funcionam as instruções Bash?

Quando se trata de scripts Bash, a instrução if torna-se bastante útil para orientar o fluxo do script com base no resultado de um teste condicional. Seu objetivo 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 acontecem quando uma instrução if entra em ação em um script Bash. O script leva um momento para avaliar a condição mencionada na instrução if. Caso a condição seja verdadeira, os comandos listados no bloco “então” terão sua vez de serem executados.

No entanto, se a condição for falsa, o script avaliará quaisquer condições elif adicionais. Se alguma dessas condições for verdadeira, os comandos do bloco elif correspondente serão executados. Nos casos em que nenhuma das condições especificadas nas instruções if e elif parecem ser verdadeiras, o script reconhece isso e executa os comandos especificados no bloco else (se um bloco else tiver sido incluído).

Essencialmente, a instrução if serve como um meio de 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 consideração vários fatores, como o resultado de um comando ou o valor atribuído a uma variável.

Declaração Bash If exemplificada

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

#!/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 um conhecimento sólido da instrução Bash If nua e como ela funciona, vamos nos aprofundar nas variações e comandos relacionados e aprender mais sobre instruções If básicas, instruções If aninhadas, Bash If Else, If Elif Else e instruções Case, uma por uma.

Declarações If básicas

Vamos começar com a instrução bash if 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 estamos tendo aqui, o script avalia a condição e, se 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 na seção “então”.

Instruções If aninhadas

Uma instrução if aninhada, como o nome do criativo indica, é uma instrução if “aninhada” dentro de outra instrução if. Essa estrutura aninhada permite testes e análises mais complexos 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 a condição1 como a primeira etapa. Se a condição1 for verificada como verdadeira, ela avaliará a condição2. Se a condição2 também for verdadeira, o script executará os comandos necessários.

Declarações Bash If Else

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

if [ condition ]
then
  commands1
else
  commands2
fi

Esta construção garante que, se a condição for válida, seu script execute “comandos1” rapidamente. Porém, se a condição for falsa, ele passará a executar “comandos2”.

Declarações If Elif Else

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

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

Aqui, seu script avalia a condição1 primeiro. Se for verificado como verdadeiro; ele executará rapidamente comandos1. No entanto, se a condição1 for falsa, seu script passa a avaliar a condição2. Se a condição2 for verdadeira, ele executa os comandos2. E se a condição1 e a condição2 forem falsas, seu script irá para a alternativa, que está executando os comandos3.

Declarações de Caso

No Bash, você tem a instrução case, que funciona de forma semelhante a uma instrução switch encontrada em outras linguagens de programação. Ele fornece uma maneira de executar diferentes conjuntos de comandos com base no valor de uma variável. Dê uma olhada na estrutura:

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

Aqui, o script avalia a variável de expressão e a compara com vários padrões. Quando uma correspondência é encontrada, o conjunto de comandos correspondente é executado. No entanto, se nenhuma correspondência for encontrada, os comandos padrão serão executados normalmente. O padrão asterisco (*) atua como um curinga, correspondendo a tudo o que não foi abordado.

Operadores Lógicos Bash

Outra parte importante das maquinações de instruções if do Bash é o Operador Lógico. Esses operadores permitem amalgamar múltiplas condições, possibilitando tomar decisões com base na verdade ou falsidade dessas condições combinadas. Bash incorpora três operadores lógicos principais para utilização em instruções if. Aqui estão exemplos dos três tipos principais de comandos do operador lógico.

  • Bash E (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Lógico ou (II):
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

Nesta postagem do blog, fornecemos um guia introdutório sobre as instruções if do Bash e como usá-las. Também discutimos como eles podem tornar seu código muito mais organizado e funcional. Ao usar essas instruções condicionais de maneira eficaz, você pode criar scripts poderosos que são capazes de lidar com tarefas complexas e tomar decisões.

Você é novo no mundo do Linux? Deixe-nos ser sua luz guia nesta jornada emocionante! Nosso VPS Linux é o ponto de partida perfeito para iniciantes, oferecendo simplicidade sem sacrificar a potência. Com interfaces fáceis de usar e suporte especializado, será mais fácil do que nunca aproveitar os recursos de um servidor Linux. Quer você esteja configurando um site, testando aplicativos ou explorando o vasto mundo do Linux, nosso VPS Linux oferece um ambiente seguro e descomplicado. Dê seus primeiros passos no universo Linux com confiança – confira nossas opções Linux VPS hoje mesmo e embarque em sua aventura Linux!

Hospedagem Linux VPS

Obtenha um VPS Linux econômico ou premium para hospedar seu site ou desktop remoto, pelo preço mais barato do mercado. VPS rodando em Linux KVM para maior eficiência e trabalhando em hardware poderoso com armazenamento SSD NVMe para maior velocidade.

Leia mais

Perguntas frequentes

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

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

Posso usar várias condições em uma única instrução if?

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

Posso usar a substituição de comando nas instruções if do Bash?

Sim, você pode usar a substituição de comando nas instruções if do Bash, colocando o comando entre $() ou crases (). Por exemplo, if [$(whoami) == “root”]; então … executará o bloco de código se o usuário atual for root.

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

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

 

Compartilhar

Mais do blog

Continue lendo.

Os melhores aplicativos auto-hospedados que você pode executar com a imagem da capa do Cosmos Cloud com painéis de aplicativos em torno de um painel do Cosmos.
Servidores e SO

Os melhores aplicativos auto-hospedados que você pode executar com o Cosmos Cloud: arquivos, mídia, senhas, automação e muito mais!

Talvez você tenha configurado o Cosmos Cloud e agora queira ver quais aplicativos combinam bem com ele, ou talvez você ainda nem tenha decidido sobre o Cosmos e só queira ver se ele se adapta bem ao seu trabalho.

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

Portainer vs Cosmos Cloud: melhor opção para gerenciamento de aplicativos Docker

Se você já conhece o Docker e deseja apenas uma maneira mais limpa de executar uma pilha de aplicativos crescente, aqui está a resposta curta para Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para direção

Nick PrataNick Prata 14 minutos de leitura
Gráfico de recurso Cosmos Cloud vs CasaOS vs Umbrel mostrando três caminhos auto-hospedados dentro de um mundo abstrato de rede em nuvem.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual plataforma auto-hospedada se adapta à sua configuração?

A resposta curta é que o CasaOS ainda é o lugar mais fácil para começar, o Umbrel tem a sensação de curadoria mais limpa e o Cosmos Cloud faz mais sentido quando você deseja um controle mais rígido sobre o doma.

Nick PrataNick Prata 11 minutos de leitura

Pronto para implantar? A partir de $ 2,48 / mês.

Nuvem independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolução do dinheiro em 14 dias.