Bash se declara se, elif, senão, então, FI

Bash se declara se, elif, senão, então, FI

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 se Declaração na linha de comando BASH
  • Como tal se As declarações também podem ser usadas dentro de um script de bash
  • Exemplos mostrando o você se, Elif, outro, então e fi cláusulas em festas
Bash If Declarações: Se, Elif, caso contrário, então, FI

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
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