Usando a instrução if… else no Bash para execução de código condicional.
Bash (Bourne Again Shell) é um prompt de comando shell e linguagem de script em sistemas operacionais GNU / Linux. É o shell padrão para a maioria das distribuições Linux.
As declarações condicionais são vitais em qualquer linguagem de programação, tanto compiladas quanto com scripts. Eles permitem que o usuário execute um trecho de código com base em uma condição predefinida, que é uma das bases da lógica de programação. Neste artigo, aprenderemos como usar o se ... mais
declaração condicional no Bash.
Introdução
O se ... mais
instrução no Bash permite que o usuário manipule o fluxo de código com base nas condições. O usuário pode especificar blocos de código separados a serem executados, apenas um dos quais será finalmente executado durante o tempo de execução, com base na condição correspondente que é satisfeita.
Observe que, mais de duas condições podem ser especificadas, para as quais elif
declaração pode ser usada. O usuário pode fornecer qualquer número de condições usando elif
e, finalmente, uma condição padrão usando senão
quadra. Vamos ver mais sobre isso na sintaxe e nos exemplos abaixo.
Sintaxe Geral
A sintaxe geral para se ... mais
declaração em Bash é:
se então senão fi
Aqui, se o satisfaz, ou seja, se retornar 0 (sucesso), então o bloco de código 1 é executado. Se a condição não retornar 0, ou seja, retornar um status de falha, então o bloco de código 2 é executado. O
se ... mais
bloco termina com um fi
declaração.
Para vários blocos correspondentes a várias condições,elif
é usado:
se então elif então elif então ... ... senão fi
Aqui, as condições são verificadas em ordem e o bloco de código da primeira condição que retorna o status 0 (sucesso) é executado. Por exemplo. E se Se nenhuma das condições retornar status 0, Observe que o Para executar um bloco de código se uma variável tem um valor particular: Para verificar vários valores: As condições podem ser quaisquer comandos do Linux. O bloco de código correspondente será executado se o comando for executado com êxito. No exemplo acima, uma vez que Nós também podemos aninhar outro Isso é útil quando um conjunto separado de condições deve ser verificado, uma vez que uma condição inicial seja satisfeita. Por exemplo, o código a seguir tenta instalar um software de servidor da web: O código verifica primeiro se o Nginx já está instalado no sistema. Se for, ele apenas exibe uma mensagem e sai. Se não estiver, ele tenta instalar o Nginx. Se por algum motivo, o Nginx não pôde ser instalado no sistema a partir do pacote, ele tenta instalar o Apache2. Se até mesmo o Apache2 apresentar erro durante a instalação, ele sairá exibindo uma mensagem de que nenhum software pôde ser instalado. De forma semelhante, um bloco aninhado pode ser usado dentro de um Semelhante a qualquer código Bash, o O usuário também pode salvar este código em um arquivo de script e executar o arquivo de script. O Para conceder permissões de execução para este arquivo, execute: Finalmente, para executar o arquivo, execute: Semelhante a qualquer linguagem de programação, retorna status diferente de zero (falha), então
está checado. Se
retorna o status 0,
É executado. Depois disso, outras condições não são verificadas e a execução do código continua para o código após o
fi
declaração. no bloco else é executado. Observe que o bloco else é opcional. Se nenhuma condição for satisfeita, bem como nenhum
senão
bloco for especificado, nenhum bloco de código condicional será executado e a execução do código continuará para o código após o fi
declaração, conforme mostrado no fluxograma abaixo.então
declaração deve ser usada somente após E se
e elif
declarações e não exigidas após o senão
declaração.Exemplos
x = 0 if [$ x -eq 0] then echo "O valor de X é 0" else echo "O valor de X não é 0" fi
x = 2 if [$ x -eq 0] then echo "Valor de X é 0" elif [$ x -eq 1] then echo "Valor de X é 1" elif [$ x -eq 2] then echo "Valor de X é 2 "else echo" O valor de X não é 0 "fi
if npm -v then echo "NPM present in system" else sudo apt install npm fi
npm
não foi instalado no sistema, o comando npm -v
retornou um status diferente de zero. Portanto, a execução do código foi para o senão
bloco, onde instalamos o npm usando apto
gerenciador de pacotes. Como podemos ver, ele me solicitou a inserir a senha e iniciou a instalação do npm.se ... mais
bloco dentro de um E se
, senão
ou elif
quadra:x = 0 y = 1 if [$ x -eq 0] then echo "X is 0" if [$ y -eq 1] then echo "Y is 1" else echo "Y is not 1" fi else echo "X is não 0 "fi
se nginx -v então echo "NGINX já está instalado." senão, se sudo apt install nginx, echo "Instalação NGINX bem-sucedida." elif sudo apt install apache2 e echo "APACHE2 installation successful." else echo "Incapaz de instalar qualquer software da web." fi
elif
bloquear também.Executando
se ... mais
: Scripts e linha de comandose ... mais
instrução pode ser usada no shell Bash diretamente ou a partir de um arquivo de script de shell executável. Assim que o intérprete Bash encontrar um E se
, senão
ou elif
declaração, ele continua o shell para permitir que o usuário insira o bloco de código.#! / bin / bash
no início especifica o interpretador a ser usado quando o arquivo é executado. Embora o Bash seja o shell mais comumente usado hoje em dia, alguns usuários preferem shells como o zsh, que deve ser especificado no lugar do bash no início deste arquivo.chmod + x test.sh
./test.sh
Conclusão
se ... mais
declaração é um recurso fundamental do Bash. Aprender seu uso ajuda muito na escrita de scripts básicos e avançados.