O que o set -e faz?

26

Eu tenho um script que encontrei e estou tentando fazer com que ele seja executado, ele apenas faz o download e instala as bibliotecas de tempo de execução do Apache. A primeira linha é set -e e está causando um erro; o que faz set -e ?

    
por spitfiredd 18.09.2013 / 03:20

2 respostas

21

This builtin is so complicated that it deserves its own section.

set allows you to change the values of shell options and set the positional parameters, or to display the names and values of shell variables.

A opção -e

-e

Exit immediately if a pipeline (see Pipelines), which may consist of a single simple command (see Simple Commands), a subshell command enclosed in parentheses (see Command Grouping), or one of the commands executed as part of a command list enclosed by braces (see Command Grouping) returns a non-zero status. The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test in an if statement, part of any command executed in a && or || list except the command following the final && or ||, any command in a pipeline but the last, or if the command’s return status is being inverted with !. A trap on ERR, if set, is executed before the shell exits.

This option applies to the shell environment and each subshell environment separately (see Command Execution Environment), and may cause subshells to exit before executing all the commands in the subshell.

Fonte: www.gnu.org

Editado devido ao comentário do @ psusi abaixo.

Além disso, você pode ler a página de manual do bash

man bash 

na seção: COMANDOS SHELL BUILTIN

ou problema

help set 

para uma breve mensagem de ajuda.

    
por Nick Thom 18.09.2013 / 03:42
11

set -e em resumo, quando está no topo do seu script bash, diz ao script para sair assim que qualquer linha do script falhar (com algumas exceções listadas no manual). [1]

Como uma opção de depuração, é frequentemente usada com set -x , que é imprimir cada linha de comando expandida antes da execução com um sinal "+". [2]

Veja mais em:

[1] link

[2] link

    
por Devy 07.07.2016 / 21:35

Tags