Bash se declara se, elif, senão, então, FI
- 652
- 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
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
efi
cláusulas em festas
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 »