Exemplos específicos mostrados neste artigo incluem:
Sintaxe geral de Bash se elif mais
Abaixo está a sintaxe geral de SE Elif e OUTRO em Bash:
se condição para teste; então
Código para Executo-1
Elif Próximo Condição ao Teste; então
Código para Executo-2
Elif Próximo Condição ao Teste; então
Código para Executo-2
outro
Código para Executo-2
fi
Nota: Na sintaxe geral acima, você pode incluir zero, um ou múltiplos Elif condições no bloco de código e no OUTRO A condição é opcional.
A construção das condições reais tem muitas opções porque a sintaxe do Bash tem muitos recursos e opções diferentes, mas um modelo muito básico para seus scripts bash seria usar o [[ Sintaxe dupla Brack, como mostrado no exemplo de sintaxe geral e exemplos específicos abaixo.
se [[condição ao teste]]; então
Código para Executo-1
elif [[próxima condição ao teste]]; então
Código para Executo-2
elif [[próxima condição ao teste]]; então
Código para Executo-2
outro
Código para Executo-2
fi
Observe também: que, dependendo da sua estética de formatação de código, você pode gostar da mesma linha das condições ou você pode optar por colocá -la na próxima linha, como mostrado abaixo:
Se [[condição ao teste]]
então
Código para Executo-1
Elif [[Next Condition-to Test]]
então
Código para Executo-2
Elif [[Next Condition-to Test]]
então
Código para Executo-2
outro
Código para Executo-2
fi
Agora vamos mostrar exemplos específicos das variações básicas do SE Elif e OUTRO Condições em exemplos de trabalho abaixo.
Exemplo 1: Se a instrução em Bash on String Iguality
#!/BIN/BASH
Leia -P "Digite uma palavra de correspondência:" user_input
se [[$ user_input == "hello"]; então
eco "Olá para você também"
fi
Neste exemplo acima, usamos o básico SE Condição com um único teste de igualdade de string e, em seguida, imprima alguma saída, caso a condição seja verdadeira com base na entrada do usuário. Nota, você pode colocar o ENTÃO declaração na próxima linha, se você preferir esse estilo. Veja o exemplo de saída abaixo:
Linuxhint@: ~ $ Bash T1.sh
Digite uma palavra de partida: Olá
Olá para você também
Linuxhint@: ~ $ Bash T1.sh
Digite uma palavra de partida: tchau
Linuxhint@: ~ $
Exemplo 2: Se a declaração em Bash on Number Iguality
#!/BIN/BASH
Leia -P "Digite um número:" User_input
se [[$ user_input -eq 7]]; então
eco "7 é um número de sorte"
fi
Neste exemplo acima, novamente fazemos um simples SE condição, mas neste caso, demonstramos como fazer uma comparação de teste em valores numéricos. Você pode ver a saída abaixo com as condições correspondentes e não correspondentes:
Linuxhint@: ~ $ Bash T2.sh
Digite um número: 7
7 é um número de sorte
Linuxhint@: ~ $ Bash T2.sh
Digite um número: 8
Linuxhint@: ~ $
Exemplo 3: Se a declaração em Bash em menos de um número
Além de -Eq Para igualdade, você também pode tentar -LT -LE -GT -GE condições de teste para menos que, menos ou igual, maiores ou maiores então ou iguais, respectivamente. Abaixo está um exemplo semelhante com menos que o operador -lt:
#!/BIN/BASH
Leia -P "Digite um número:" User_input
se [[$ user_input -lt 100]]; então
eco "Sua entrada é menos de cem"
fi
A saída para este script poderá testar se a entrada for menor que 100 e executar código específico nessa condição:
Linuxhint@: ~ $ Bash T3.sh
Digite um número: 99
Sua entrada é menos de cem
Linuxhint@: ~ $ Bash T3.sh
Digite um número: 101
Linuxhint@: ~ $
Exemplo 4: Se a instrução em Bash com lógico e operador
Este exemplo mostrará como combinar várias condições com um lógico E doença. Você também pode usar lógico OU condições em seu SE Construções de declaração. Lógico E no código BASH está escrito com amperas duplos e &&. Abaixo está um exemplo de lógica E em uma festa SE doença:
#!/BIN/BASH
Leia -P "Digite um número:" User_input
se [[$ user_input -gt 9 && $ user_input -lt 100]]; então
eco "Sua entrada é de dois dígitos"
fi
Testaremos isso com várias saídas para provar que somente se a primeira e a segunda condição forem verdadeiras, a saída será impressa:
Linuxhint@: ~ $ Bash T4.sh
Digite um número: 22
Sua entrada é de dois dígitos
Linuxhint@: ~ $ Bash T4.sh
Digite um número: 8
Linuxhint@: ~ $ Bash T4.sh
Digite um número: 100
Linuxhint@: ~ $ Bash T4.sh
Digite um número: 99
Sua entrada é de dois dígitos
Exemplo 5: Se a declaração em Bash com lógico ou operador
Lógico OU em scripts Bash está escrito com barras verticais duplas ||. Vamos tentar o exemplo anterior novamente com uma ligeira variação para testar um exemplo do lógico ou operador:
#!/BIN/BASH
Leia -P "Digite um número:" User_input
se [[$ user_input -lt 10 || $ User_input -ge 100]]; então
eco "Sua entrada não é de dois dígitos"
fi
Neste exemplo, o lógico OU O operador combina duas condições e apenas um ou ambos podem ser verdadeiros para que a condição seja verdadeira e o código para executar. Nós também demonstramos o -ge operador para comparação numérica maior ou igual no exemplo acima. O script está funcionando como esperado na saída abaixo:
Linuxhint@: ~ $ Bash T5.sh
Digite um número: 3
Sua entrada não é de dois dígitos
Linuxhint@: ~ $ Bash T5.sh
Digite um número: 10
Linuxhint@: ~ $ Bash T5.sh
Digite um número: 99
Linuxhint@: ~ $ Bash T5.sh
Digite um número: 100
Sua entrada não é de dois dígitos
Linuxhint@: ~ $ Bash T5.sh
Digite um número: 101
Sua entrada não é de dois dígitos
Exemplo 6: Condição Elif em Bash
Agora forneceremos um exemplo para múltiplas condições se condições no bloco de código com Elif. Você pode ter zero, um ou multipe Elif Condições em um bloco de código. Para este exemplo, forneceremos dois Elif condições como demonstração, mas você pode usar qualquer número de Elif bloqueia na prática.
#!/BIN/BASH
Leia -P "Digite um número:" User_input
se [[$ user_input -lt 0]]; então
eco "não é uma entrada de número positivo válido"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; então
eco "Número válido de 1 dígito inserido"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; então
eco "número válido de 2 dígitos inserido"
fi
Testaremos este código com uma variedade de números para demonstrar qual se ou Elif A condição é acionada:
Linuxhint@: ~ $ Bash T6.sh
Digite um número: -1
Não é uma entrada de número positivo válido
Linuxhint@: ~ $ Bash T6.sh
Digite um número: 1
Número válido de 1 dígito inserido
Linuxhint@: ~ $ Bash T6.sh
Digite um número: 14
Número válido de 2 dígitos inserido
Linuxhint@: ~ $ Bash T6.sh
Digite um número: 101
Linuxhint@: ~ $
Exemplo 7: se a declaração de outra coisa no script de bash
Vamos agora demonstrar o OUTRO doença. O OUTRO condição é usada no caso em que o SE condição ou todo o Elif As condições não existem então o OUTRO condição será usada e o código no OUTRO condição será executada. Vamos adicionar um exemplo de OUTRO condição para o exemplo anterior, mas para ser claro Elif não é necessário para alavancar o OUTRO doença. O OUTRO condição pode ser usada com um SE condição e não Elif doença.
#!/BIN/BASH
Leia -P "Digite um número:" User_input
se [[$ user_input -lt 0]]; então
eco "não é uma entrada de número positivo válido"
elif [[$ user_input -gt 0 && $ user_input -lt 10]]; então
eco "Número válido de 1 dígito inserido"
elif [[$ user_input -gt 9 && $ user_input -lt 100]]; então
eco "número válido de 2 dígitos inserido"
outro
eco "um número válido de 2 dígitos não foi inserido"
fi
Vamos testar o código de exemplo com um caso de teste simples que deve cair no OUTRO doença:
Linuxhint@: ~ $ Bash T7.sh
Digite um número: 199
Um número válido de 2 dígitos não foi inserido
Linuxhint@: ~ $
CONCLUSÃO
Vimos como usar SE, Elif e OUTRO Condições para formar a execução condicional em muitas combinações em scripts e programas de bash. Para as próximas etapas, você pode estudar condições de teste e as variações e variedades disponíveis para testar uma condição. Você também pode considerar a declaração do caso Bash como um suplente para a lógica condicional em scripts de bash. Finalmente, o manual de referência do GNU Bash é uma boa fonte de verdade ao procurar detalhes exatos da sintaxe.