Escrever um script Bourne Again Shell (Bash) pode ser uma experiência gratificante, especialmente quando você adiciona lógica a ele, garantindo sua robustez. Uma maneira de incorporar essa lógica, tornando seu script mais inteligente, é através do uso de declarações condicionais, especificamente ‘bash if else’.
Nesta análise profunda, você está prestes a compreender o poder e as nuances das declarações if-else e case do Bash. Isso o ajudará a criar scripts Bash inteligentes e sem erros. Também vamos adicionar algumas melhores práticas para garantir que você esteja escrevendo scripts como um profissional.
Animado? Aprofunde-se e eleve seu conhecimento em scripting Bash!
Preparando o Terreno: Pré-requisitos
Para aproveitar ao máximo este tutorial, há alguns requisitos essenciais que você deve ter em mãos:
- A Linux or Windows system armed with Bash. For those on Windows, the Windows Subsystem for Linux (WSL) is your best bet.
- A code/text editor to write and refine your ‘bash if else’ scripts.
Por Que Você Deve Usar Declarações bash if else?
Por que as declarações condicionais são tão reverenciadas na escrita de scripts Bash? Simplificando, elas dotam seus scripts com capacidades de tomada de decisão com base em condições predefinidas.
Por exemplo, você pode usar ‘bash if else’ para verificar se um arquivo existe antes de tentar excluí-lo. Alternativamente, você pode querer verificar se um usuário possui as permissões necessárias antes de permitir que eles acessem um recurso.
Inserir scripts com estruturas ‘bash if else’ não apenas amplifica sua flexibilidade, mas também sua eficácia. Imagine um script projetado para limpar todos os arquivos em uma pasta. Usando ‘bash if else’, você pode excluir cirurgicamente apenas aqueles arquivos com mais de 30 dias, preservando o restante.
Entrando na Declaração ‘bash if else’
Agora, deixemos a introdução de lado e coloquemos a mão na massa. Vamos começar com uma das declarações condicionais mais universalmente aceitas: a declaração ‘bash if else’.
No seu cerne, o ‘bash if else’ é um portal para inserir condicionais em seus scripts Bash. Observe sua sintaxe elegante abaixo:
- Começa com a palavra-chave if, seguida pelas condições encapsuladas dentro de [[ ]]. Em seguida, o código que reside dentro da declaração ‘bash if else’ é executado, concluindo com a palavra-chave fi.
- A palavra-chave then segrega a condição das ações (ou declarações) que são executadas quando as condições são satisfeitas. Este bloco de ação pode abranger várias linhas, separadas por ponto e vírgula (;).
Imagine a criação de um sistema de login. Ele solicita o nome de usuário correto antes de conceder acesso:
1. Inicie seu terminal e inicie um novo arquivo bash_if_demo.sh utilizando seu editor de texto preferido. Este será nosso playground para entender as declarações ‘bash if else’.
2. Incorpore o exemplo de ‘bash if else’ fornecido abaixo no seu arquivo bash_if_demo.sh. Uma vez inserido, salve as modificações e saia do editor.
O script de exemplo ‘bash if else’ solicita um nome de usuário. Se o nome de usuário esperado for inserido, uma mensagem de boas-vindas é exibida, complementada pela data e hora atuais.
Manter um registro da data e hora das tentativas de acesso do usuário pode ser inestimável para análises futuras.
A linha introdutória #!/bin/bash (comumente conhecida como shebang) direciona o sistema sobre o interpretador a ser utilizado para processar o código subsequente no script. Aqui, ‘bash’ é o nosso interpretador escolhido.
3. Agora, vamos colocar nosso script ‘bash if else’ à prova. Execute o comando abaixo:
Lembre-se, independentemente da variante do shell Bash que você está usando, prefixe o nome do seu script com ‘bash’. Isso garante que o sistema utilize o Bash para a execução do script.
Digite “ATA” e pressione Enter. O resultado deve se assemelhar ao seguinte:

Se você inserir algo diferente de “ATA”, a mensagem de boas-vindas não será exibida na saída. Apenas a data e hora atual serão mostradas. Esse comportamento é atribuído à declaração ‘bash if else’, que verifica uma correspondência precisa com o valor na variável $NAME.
Observe que as declarações ‘bash if else’ são sensíveis a maiúsculas e minúsculas. Portanto, “ata,” “aTa,” “Ata,” e assim por diante, são distintos de “ATA.”

Teste consistentemente seus scripts ‘bash if else’ com entradas variadas. Isso garante que os scripts funcionem conforme o esperado.
Aprofundando: Declarações ‘bash if else’ Aninhadas
Você já entendeu os fundamentos de criar declarações ‘bash if else’. Embora esse conhecimento básico seja suficiente para tarefas simples, scripts complexos frequentemente exigem construções avançadas. É aqui que entram em cena as declarações ‘bash if else’ aninhadas. Basicamente, é uma declaração ‘if’ que abriga uma ou várias declarações ‘if’ adicionais.
A estrutura abaixo ilustra a sintaxe básica para declarações ‘bash if else’ aninhadas. Aqui, a cláusula externa if [[ condições ]]
engloba o código executável apenas quando a condição é atendida. Em nosso contexto, o código aninhado é outra declaração ‘if’.
if [[ condições ]]
– Isso representa o comando externo ‘bash if else’. O código aninhado (outro comando ‘if’) só é executado se a condição declarada for verdadeira.if [[ condição2 ]]
– Isso representa a cláusula interna ‘bash if else’. Ele contém o código que é executado somente se ambas as condições forem satisfeitas.
Vamos aprofundar mais. Aprimorando nosso exemplo anterior de ‘bash if else’, agora incluiremos um comando if
que questiona sobre uma senha:
1. Primeiro, estabeleça um novo arquivo intitulado bash_nested_if_demo.sh usando seu editor de texto favorito.
2. Transfira o código ‘bash if else’ fornecido abaixo para o arquivo bash_nested_if_demo.sh, salve suas alterações e feche o editor.
Este código ‘bash if else’ solicita tanto um nome quanto uma senha. Se as condições para o nome e a senha estiverem alinhadas, uma mensagem específica é exibida. Se não houver correspondência, a saída exibirá apenas a data e hora atuais.
3. Agora, vamos ver este script ‘if else’ bash em ação. Execute o comando abaixo:
Para resultados ótimos, insira ATA como o nome de usuário e pwd123 como a senha.

Se suas entradas divergirem de “ATA” ou “pwd123”, o único feedback que você receberá será sobre a data e hora atual. Isso ocorre porque a estrutura ‘if else’ bash exige o cumprimento de ambas as condições.

Decodificando Declarações ‘If Else’ Bash
As declarações ‘if else’ bash são fundamentais em scripts Bash, fornecendo capacidades decisivas para seus scripts. No entanto, é crucial entender que o uso de declarações ‘if’ não é isento de desvantagens.
O desafio evidente é que a dependência excessiva do ‘if’ pode tornar seu código confuso, tornando-o tedioso e desafiador, especialmente quando múltiplos ‘if’ aninhados entram em jogo. Tais scripts correm o risco de se tornarem um “código espaguete”, caracterizado por uma legibilidade reduzida e uma complexidade aumentada.
Então, como você simplifica seu script ‘bash if else’ para permanecer compreensível? Opte por declarações ‘if else’ em vez de um monte de ‘if’ aninhados. A palavra-chave ‘else’ oferece a conveniência de especificar um bloco de código a ser executado se a condição ‘if’ não for atendida.
Para uma perspectiva mais clara, considere a sintaxe para ‘Bash If Else’ abaixo, onde:
if [[ condições ]]
– Aqui, a declaração ‘bash if else’ inclui o código (declaração1
) que é acionado apenas quando a condição declarada é válida.else
– Isso faz parte da estrutura ‘bash if else’. A declaraçãoelse
engloba o código (declaração2
) que é executado quando a condição na cláusulaif
anterior não é satisfeita.
Imagine criar um jogo simples de ‘bash if else’ onde o sistema espera um número aleatório do usuário:
1. Comece construindo um novo arquivo chamado bash_if_else_demo.sh.
2. Integre o código ‘bash if else’ subsequente em seu arquivo bash_if_else_demo.sh, salve as alterações e depois saia.
O código subjacente ‘bash if else’ solicita ao usuário seu número da sorte. Se a entrada for par, exibe a mensagem ‘Você ganhou!’. Pelo contrário, um número ímpar aciona a saída ‘Você perdeu!’.
3. Para testemunhar o script ‘bash if else’ em operação, execute o comando abaixo:
Ao inserir um dígito par, você deverá ver a mensagem “Você ganhou com ‘bash if else’!”. Ao contrário, inserir um dígito ímpar deverá resultar no feedback “Você perdeu usando ‘bash if else’!”.

Para enriquecer o script ‘bash if else’, considere incorporar um segmento que determine se o usuário insere uma letra ou um caractere distinto em vez de um número.
Decodificando ‘Bash If Else’ e Declarações de Caso
Neste momento, você explorou alguns métodos para tomar decisões em seus scripts Bash, nomeadamente as declarações ‘bash if else’. Mas o Bash oferece outra abordagem para a tomada de decisões – a declaração case
.
Assim como o ‘bash if else’, a declaração case
é hábil em especificar sequências de código a serem executadas com base em condições especificadas. Uma vantagem notável da declaração de caso é sua concisão e clareza, especialmente quando comparada a cenários aninhados de ‘bash if else’.
Para compreender completamente a alternativa ‘bash if else’, vamos mergulhar na sintaxe da instrução case:
case $VAR in
– Este segmento da construção case avalia a variável$VAR
em relação a padrões definidos até que uma correspondência seja encontrada.padrão1)
epadrão2)
– Estes são os critérios a serem testados, e uma vez que uma correspondência é detectada, o código correspondente (declaração1
oudeclaração2
) entra em ação.esac
– Conclui a estrutura case.
Imagine que você está projetando um script ‘bash if else’ onde os usuários inserem os nomes de seus países e, em resposta, o script exibe o idioma predominante desse país.
1. Comece gerando um arquivo chamado bash_case_demo.sh.
2. Incorpore o código ‘bash if else’ fornecido abaixo em seu arquivo bash_case_demo.sh, salve e saia.
O script ‘bash if else’ resultante solicitará ao usuário o nome de seu país e, com base nos padrões ‘case’, imprimirá o idioma principal falado no país mencionado.
3. Para experimentar este script ‘bash if else’ em primeira mão, utilize o comando subsequente:
Você perceberá que o script destaca com precisão o idioma de acordo com o país escolhido pelo usuário.
Se o país fornecido não corresponder aos padrões estipulados, o padrão (*) padrão é acionado, resultando na saída “desconhecido.”

Conclusão das Declarações Condicionais Bash
Neste guia, você embarcou na jornada de compreensão do ‘bash if else’ e outras declarações condicionais em Bash. Desde a simples declaração ‘if’ até as intrincadas declarações ‘if-else’ e ‘case’, você agora está equipado com ferramentas essenciais para a elaboração eficaz de scripts Bash.
Com esses fundamentos de ‘bash if else’ sob seu domínio, você pode construir scripts Bash com mais proficiência, reduzindo a margem de erros.
Mas lembre-se, isso é apenas a ponta do iceberg. Bash oferece uma vasta gama de declarações condicionais. Talvez, considere se aprofundar na declaração elif do Bash e nos operadores &&, OR e || para insights mais profundos. Com dedicação, dominar a elaboração de scripts em Bash em breve estará ao seu alcance!