É bom observar que, como o ZSH é construído em cima do Bash, a sintaxe e a funcionalidade são semelhantes para scripts construídos para shell Bash ou Zsh.
If Declaração
A maneira mais básica de implementar a lógica condicional em um script de shell é usando uma instrução IF. A sintaxe geral para uma instrução IF em Zsh está abaixo:
#!/usr/bin/zsh
se condição
então
// Run Comandos
fi
Para implementar uma declaração IF, começamos chamando a palavra -chave se. Em seguida, passamos a expressão condicional para avaliar. A expressão condicional deve retornar um valor booleano.
Depois que a expressão condicional chega à palavra -chave e no bloco FI, dentro desses blocos, passamos os comandos para executar se a expressão condicional avaliar para verdadeiro.
Se a expressão condicional passada avaliar para um false booleano, o bloco de comandos dentro do bloco então fi será ignorado e as saídas condicionais.
Embora não seja necessário, é recomendável recuar seus blocos de código para legibilidade e manutenção.
Considere o exemplo se a declaração abaixo:
Toque em condicionais.condicionais sh && vim.sh
#!/usr/bin/zsh
Se [[100 -GT 50]]
então
eco "100 é maior que 50"
fi
Salve o arquivo e feche.
Em seguida, faça o arquivo executável usando o comando chmod como:
CHMOD +X condicionais.sh
Finalmente, execute o script como:
./condicionais.sh
O script será executado no bloco if e verificar se 100 é maior que 50. Se for verdade, ele executará o comando e a saída do eco.
Abaixo está um exemplo de saída:
$ ./condicional.sh
100 é maior que 50
Se ... else declaração
Uma versão mais evoluída da instrução if é a declaração se ... else. Funciona como a instrução if, mas adiciona uma alça se a expressão condicional avaliar para false.
Abaixo está a sintaxe geral para a declaração se… else:
#!/usr/bin/zsh
se condicional
então
// comandos para executar se verdadeiro
outro
// comandos para executar se false
fi
Como visto no exemplo acima, se a expressão condicional é avaliada como verdadeira, o bloco entre então e outras declarações executa. No entanto, se false, o bloco else.
Considere o exemplo mostrado abaixo:
#!/usr/bin/zsh
eco -n "Digite um número:"
Leia num
Se [[$ num -gt 50]]
então
eco "$ num é maior que 50"
outro
eco "$ num não é maior que 50"
fi
No script de exemplo, pedimos ao usuário que insira um número. Se o número for maior que 50, ecoarmos que o número é maior que 50. Se false, ecoando o número não é maior que 50.
Abaixo está um exemplo de saída:
$ ./condicional.sh
Digite um número: 10
10 não é maior que 50
$ ./condicional.sh
Digite um número: 80
80 é maior que 50
Se ... elif ... else declarações
Em alguns casos, você pode querer testar várias condições em um bloco. Para implementar essa lógica, podemos usar a declaração se ... elif ... else.
Em uma declaração se ... elif ... else, adicionamos múltiplas expressões condicionais, onde apenas uma condição é avaliada para verdadeiro. Se a primeira condição for verdadeira, execute seu bloco; Caso contrário, verifique o segundo e continue até que todas as condições sejam verificadas.
A sintaxe para o bloco If ... Elif é:
#!/usr/bin/zsh
Se condição1
então
// Bloco 1
Elif Condition2
então
// Block2
Elif ConditionN
então
// blockn
outro
// se todas as condições avaliarem para falsos
fi
As condições são avaliadas sequencialmente. Se alguém avaliar como verdadeiro, seu bloco de código será executado. No entanto, se nenhuma das condições for verdadeira, o bloco else será executado.
O bloco else é opcional, mas recomendado para lidar com uma situação em que nenhuma condição é verdadeira.
Aqui está um exemplo de script:
Se [[$ num -eq 10]]
então
eco "número = $ num"
Elif [[$ num -eq 20]]
então
eco "número = $ num"
Elif [[$ num -eq 30]]
então
eco "número = $ num"
outro
eco "o número não é 10, 20 nem 30"
eco "número = $ num"
fi
O script acima implementa um bloco ELIF se o número inserido for 10, 20 ou 30. Caso contrário, os outros blocos para lidar com a condição, como mostrado na execução abaixo:
./condicional.sh
Digite um número: 10
Número = 10
Digite um número: 20
Número = 20
Digite um número: 30
Número = 30
Digite um número: 51
O número não é 10, 20 nem 30
Número = 51
Você pode ter tantas declarações Elif quanto você acha adequado. No entanto, se esses cenários ocorrerem, considere a implementação de um bloco de caso.
Operadores condicionais
Nos exemplos acima, implementamos operadores condicionais como -eq (igual a) e -gt (maior que). O ZSH suporta outros operadores condicionais, como:
Os acima são exemplos de expressões condicionais que você pode usar em seus scripts ZSH. Confira a documentação para saber mais.
Conclusão
Este tutorial mostrou como implementar a lógica condicional em nossos scripts ZSH usando as instruções IF. Sinta -se à vontade para conferir a documentação de script ZSH para saber mais.
Obrigado pela leitura!