¿Qué establece -e hacer?

25

Tengo un script que encontré y estoy intentando que funcione, simplemente descarga e instala las bibliotecas de tiempo de ejecución de Apache. La primera línea es set -e y está causando un error; ¿Qué hace set -e do?

    
pregunta spitfiredd 18.09.2013 - 01:20

2 respuestas

21
  

Este built-in es tan complicado que merece su propia sección.

     

establecer   le permite cambiar los valores de las opciones de shell y configurar el   parámetros posicionales, o para mostrar los nombres y valores del caparazón   variables.

La opción -e

  

-e

     

Salga de inmediato si hay una tubería (consulte Tuberías), que puede consistir en un   comando sencillo simple (vea Comandos simples), un comando subshell   encerrado entre paréntesis (ver agrupación de comandos) o uno de los comandos   ejecutado como parte de una lista de comandos rodeada por llaves (ver Comando   Agrupamiento) devuelve un estado distinto de cero. El shell no sale si el   comando que falla es parte de la lista de comandos inmediatamente después de una   while or until keyword, parte de la prueba en una sentencia if, parte de   cualquier comando ejecutado en un & amp; & amp; o || lista excepto el comando siguiente   la final & amp; & amp; o ||, cualquier comando en una tubería pero el último, o si el   el estado de retorno del comando se está invirtiendo con! Una trampa en ERR, si   set, se ejecuta antes de que el shell salga.

     

Esta opción se aplica al entorno de shell y a cada subshell   entorno por separado (ver Entorno de Ejecución de Comandos), y puede   hacer que las subcapas salgan antes de ejecutar todos los comandos en el   subshell.

Fuente: www.gnu.org

Editado debido al comentario de @ psusi a continuación.

Además, puedes leer la página de manual de bash

man bash 

en la sección: COMANDOS SHELL BUILTIN

o problema

help set 

para obtener un breve mensaje de ayuda.

    
respondido por el Nick Thom 18.09.2013 - 01:42
11

set -e en resumen, cuando está en la parte superior de su script bash, le dice al script que salga tan pronto como falle cualquier línea del script (con algunas excepciones enumeradas en el manual). [1]

Como una opción de depuración, a menudo se usa con set -x , que es para imprimir cada línea de comando expandida antes de la ejecución con un signo "+". [2]

Ver más en:

[1] enlace

[2] enlace

    
respondido por el Devy 07.07.2016 - 19:35

Lea otras preguntas en las etiquetas