Bash se declara se, elif, senão, então, FI
- 680
- 66
- Arnold Murray
Se você está apenas começando a explorar o idioma de codificação Bash, em breve se encontrará querendo criar declarações condicionais. Declarações condicionais, em outras palavras, definem 'Se uma condição for verdadeira ou falsa, faça isso ou aquilo, e se o oposto for verdadeiro, faça algo outro'. Esta é a função mais básica de qualquer declaração condicional.
Este artigo apresentará você aos cinco básicos se cláusulas de declaração. ser se, Elif, outro, então e fi. O primeiro simplesmente abre um se declaração, o então apresenta o O que comanda para executar se a condição da declaração era verdadeira seção e a outro apresenta o O que comanda para executar se a condição da declaração era falsa seção. finalmente, o fi fecha a declaração. Nós também temos o especial Elif em que veremos mais em um minuto. Vamos começar com um exemplo fácil.
Neste tutorial, você aprenderá:
- Como implementar um
seDeclaração na linha de comando BASH - Como tal
seAs declarações também podem ser usadas dentro de um script de bash - Exemplos mostrando o você
se,Elif,outro,entãoeficláusulas em festas
Bash If Declarações: Se, Elif, caso contrário, então, FI Requisitos de software e convenções usadas
| Categoria | Requisitos, convenções ou versão de software usada |
|---|---|
| Sistema | Independente da distribuição Linux |
| Programas | Linha de comando Bash, sistema baseado em Linux |
| Outro | Qualquer utilidade que não esteja incluída no shell bash por padrão pode ser instalada usando sudo apt-get install utility-name (ou yum install para sistemas baseados em redhat) |
| Convenções | # - requer que o Linux -Commands seja executado com privilégios de raiz diretamente como usuário root ou por uso de sudo comando$-exige que o Linux-Commands seja executado como um usuário não privilegiado regular |
Exemplo 1: Instrução simples se na linha de comando
$ se [1 -EQ 1]; Então eco "combinado!"; Fi combinado!
Nesta declaração, estamos comparando um a um. Observe que -Eq significar igual a. Para fazer o contrário, pode -se usar -ne que significa não igual a, Conforme mostrado no exemplo a seguir:
$ se [0 -ne 1]; Então eco "combinado!"; Fi combinado!
Nesse caso, verificamos a não igualdade e como 0 não é igual a 1 o se a declaração é verdadeira, e os comandos após o então será executado. Vamos mudar isso um pouco:
$ se [1 -ne 1]; Então eco "combinado!"; caso contrário, eco" não combinou!"; Fi não correspondeu!
Aqui introduzimos um outro cláusula; o que comanda para executar quando a condição no se a declaração provou ser falsa (ou Não é verdade). Enquanto tentamos consultar se 1 não é igual (-ne) para 1 desta vez, e como 1 é igual 1 (o que não é o caso), a condição formulada neste se a declaração é falsa e nós encontramos nosso outro declaração com o texto correspondente impresso.
Exemplo 2: Usando e se a instrução de dentro de um script de shell bash
É bom observar que você pode copiar e colar facilmente qualquer se Declaração mostrada aqui ou em outro lugar, e use -a dentro de um script de shell bash. Por exemplo:
$ echo '#!/bin/bash '> myscript.sh $ echo 'se [1 -EQ 1]; Então eco "combinado!"; fi '>> myscript.sh $ chmod +x myscript.sh $ ./myscript.SH combinado! $ cópia de Aqui nós simplesmente criamos um pequeno MyScript.sh script de shell usando eco e a > redirecione para redirecionar a saída de nosso eco para um arquivo. Quando você usa > Um novo arquivo será criado e qualquer arquivo com o mesmo nome será substituído, então use -o com cuidado. Em seguida, adicionamos nossa instrução if novamente usando o eco e um redirector duplo >> que diferente > não criará um novo arquivo e simplesmente anexará o texto ao arquivo indicado.
Em seguida nós chmod +x o script para torná -lo executável e executar o script usando o ./ Prefixo que é necessário no Bash (qualquer especificador de caminho correto fará).
A primeira linha do script é simplesmente garantir que usaremos o intérprete de basquete para o nosso script. É uma boa prática sempre definir isso para Bash e outros scripts (para outros scripts, você deve definir isso para qualquer intérprete que vai executar seu script, por exemplo #!/usr/bin/python3 Para um Python 3 (.PY3 por exemplo) scripts etc).
Quando executamos o script, podemos ver que a saída está sendo gerada conforme o esperado (1 partidas 1): Coincide!.
Exemplo 3: o que é elif?
O Elif A cláusula nos fornece flexibilidade extra de abreviação, corte a necessidade de declarações aninhadas. Considere o seguinte teste.sh:
#!/bin/bash se [0 -EQ 1]; então eco '0 = 1' else if [0 -eq 2]; então eco '0 = 2' else eco '0!= 2 'fi fi cópia de E a saída dele:
$ ./teste.sh 0!= 2
Aqui passamos pelo primeiro se declaração, e desde 0 não corresponde 1, o outro A cláusula é ativada. Isso acontece uma segunda vez quando 0 também se mostra desigual para 2 e daí o -Eq (igual a) condição falha e o segundo outro A cláusula é ativada, dando como saída 0!= 2. Vamos comparar isso com um Elif declaração baseada no seguinte Test2.sh.
#!/bin/bash se [0 -EQ 1]; então eco '0 = 1' elif [0 -Eq 2]; então eco '0 = 2' else eco '0!= 2 'fi cópia de E a saída dele:
$ ./test2.sh 0!= 2
O roteiro fez exatamente o mesmo, mas de uma maneira muito mais flexível e mais curta, exigindo apenas um nível de se profundidade da declaração e com código geral mais limpo. Observe também que é possível ter um se declaração seguida por muitos elseif Declarações, permitindo que um desenvolvedor testasse uma variedade de condições é uma estrutura de nível único e de aparência única.
Conclusão
Neste artigo, exploramos exemplos exemplificando o se, Elif, outro, então e fi cláusulas em festas. Também analisamos como implementar se Declarações na linha de comando Bash. Também analisamos a mudança de tais declarações para scripts de bash. Aproveitar se Declarações em Bash, e deixe -nos alguns pensamentos com o seu melhor se dicas e truques!
E, para uma visão um pouco mais avançada de que se Pode fazer por você quando combinado com sub -explosões, consulte o artigo de como usar o artigo do Bash Subshells dentro!
Tutoriais do Linux relacionados:
- Mastering Bash Script Loops
- Uma introdução à automação, ferramentas e técnicas do Linux
- Coisas para instalar no Ubuntu 20.04
- Loops aninhados em scripts de basquete
- Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
- Scripts Bash: Condicionais
- Como usar as sub -mais de bases dentro das declarações if if
- Bash Loops com exemplos
- Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
- Ubuntu 20.04 Guia
- « Como remover o servidor da web do Apache do Ubuntu
- Gerenciamento de lista de processos e terminação automática de processo »