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.