O que define -e faz em Bash?

O que define -e faz em Bash?
O conjunto -e é usado dentro da festa para interromper a execução instantaneamente como uma consulta, enquanto tem um status diferente de zero. Esta função também é usada quando você precisa saber o local do erro no código em execução. Vamos continuar o artigo para elaborar o conceito de "set -e" em diferentes aspectos dos códigos.

Instale extensões bash no Linux. Se já estiver instalado, você precisará atualizar a versão porque a versão deve estar acima de 4.

Exemplo 1

Aqui, precisamos de um arquivo com o código Bash. Portanto, crie um arquivo usando um comando "Touch" usando o terminal Ubuntu. Que está escrito como:

$ touch file1.sh

Vamos adotar duas abordagens aqui. Um é usar "set -e" fora do corpo da função, enquanto o outro é usá -lo dentro da função. Considere um arquivo “File1.sh ”. Precisamos do arquivo com uma extensão de .sh como estamos escrevendo o código na linguagem bash. Este exemplo lida com a adição de uma função chamada "HELO".

Nesta função, queremos imprimir uma linha, então apenas usamos o comando Echo aqui para exibir a mensagem. Como declaramos uma função aqui, a chamada de função deve ser necessária aqui. Então, no final, usamos o nome da função como uma chamada de função. Aqui "set -e" é usado no início significa fora do corpo da função.

Set -e

Definir -e apenas se relaciona com escrever ou definir um erro mostrando o código.

Usamos um editor de texto simples que está presente no sistema Ubuntu por padrão.

$ BASH FILE1.sh

Agora, movendo -se em direção à segunda abordagem, onde temos que usar "set -e" dentro da função. Veremos a diferença entre essas abordagens. Edite o código fornecido substituindo "Set -e" de fora do corpo da função para dentro do corpo da função "HELO", enquanto o código restante é o mesmo que o anterior. Você pode verificar a partir da imagem inserida.

Execute o mesmo comando novamente no terminal para obter o resultado.

Isso significa que "Set -e" não causa alteração quando é usado dentro ou fora do corpo da função.

Exemplo 2

Este é um exemplo bastante fácil, no qual após a declaração de extensão do bash em um arquivo, usamos "set -e" no corpo externo da função. O "Set -e" permite que o terminal jogue uma exceção onde encontra o erro e, em seguida, a execução do código Stop Stop. Então, a função de erro é declarada aqui. O único objetivo desta função é exibir a mensagem de erro junto com o número da linha que contém o erro.

Há algo de especial neste exemplo que é o uso da palavra -chave "armadilha". Essa palavra-chave permite o uso de uma função interna errada que pega o número da linha de erro e depois a transida para a função de erro. Para esse fim de identificação e exibição de erros, precisamos adicionar uma instrução ou uma variável que não esteja incluída no Bash ou use alguma linha significativa com a alteração dos valores de sintaxe.

Armadilha “erro $ linenoe 'err

De acordo com este código, o resultado deve mostrar o erro na linha 10.

Executar o código no terminal usando o arquivo. Você pode relatar que o nome do arquivo é mostrado com o número da linha e uma exceção é lançada que mostra que o comando não é encontrado. Em segundo lugar, tendo uma mensagem da função para representar o número da linha em que ocorreu um erro.

Exemplo 3

Este exemplo lida com o uso de dois arquivos bash. Um é o arquivo1.sh e o outro é o arquivo2.sh. Considere o arquivo2.sh primeiro. Aqui usamos "set -e" e ele não é usado no outro arquivo. Da mesma forma, apenas neste arquivo, usamos a chamada de função, enquanto todo o corpo da função é declarado no outro arquivo. Vinculamos os dois arquivos usando a palavra -chave "fonte" para que a chamada de função que fizemos aqui possa executar a função do outro arquivo.

4 Fonte “File1.sh ”

Depois disso, na chamada de função, uma palavra também é exibida.

Eco “Notificação: $ (HELO)”

"Helo" é o nome da função.

Agora, considere o outro arquivo de arquivo1.sh. Neste arquivo, a função Helo1 () é declarada. No corpo da função, exibimos apenas uma mensagem.

Eco “Espere: $ 1”

Movendo -se em direção à outra função que é Helo (). Esta é a mesma função que foi chamada pelo nome no primeiro arquivo que discutimos. Dentro desta função, usamos novamente uma chamada de função de Helo1 (). Isso é declarado acima da função atual no mesmo arquivo, para que não precisemos vincular os dois arquivos usando a palavra -chave "fonte". Com a chamada de função, uma mensagem é exibida:

Helo1 “Existe um erro”

Todo o desempenho é feito de tal maneira que executaremos o arquivo2.sh no terminal. Portanto, a primeira chamada de função será executada e o controle se moverá em direção à função Helo () no arquivo1.sh. Isso executará esta chamada de função e agora o controle se moverá em direção à primeira função do arquivo. Vamos ver como a saída é exibida.

$ BASH FILE.sh

Agora você pode ver que primeiro a palavra é exibida do arquivo2.sh e então a mensagem de função "Helo1 ()" que é "espera" e depois a mensagem de função Helo (). Como usamos "saída 1", o controle não é dado a isso, então não há papel de "set -e" novamente. Se a chamada de função não for tratada, deve haver um erro a prevalecer.

Exemplo 4

Este exemplo contém um entendimento completo de "set -e". Tire quatro funções neste exemplo. Como sabemos que o conjunto-E embutido é usado para sair do código quando obtém status diferente de zero. Neste exemplo, usamos "0" para apenas uma função que é a primeira. Todas as outras funções retornam 1. Isso significa que o código sairá da execução após a primeira função ser exibida. Mas não vai. Aqui, usamos "set +e", que é o oposto de "set -e". Sempre que "Set -e" forçar o código para rescindir a execução, o oposto se opõe a ele sempre que encontrar o valor diferente de zero. "Set +E" é declarado antes da chamada de função das duas primeiras funções e "Set -e" antes da chamada de função dos dois últimos métodos.

Set +e

Agora, as duas primeiras funções serão executadas. Na segunda função, como é um valor diferente de zero, o compilador forçará a lançar um erro, mas "set +e" neutralizará o valor. Quando é a hora da terceira função, as duas mensagens serão exibidas por Echo, mas quando o controle vai para o valor "Retornar 1", o código será interrompido. Como aqui, não usamos "set +e". É por isso que a 4ª função não é executada aqui.

Execute o código no terminal para que você verá o valor resultante.

Conclusão

Este tutorial mostra o funcionamento de "Set -e". Nos exemplos, é assim que é usado para encerrar a execução. No entanto, o oponente "set +e" também é utilizado aqui para ilustrar o trabalho.