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”.
Conhecendo as diferentes instruções Bash If e a sintaxe de comando relacionada
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!
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 maisPerguntas 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.