Tengo un script que encontré y estoy tratando de ejecutarlo, solo 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é set -e
hacer?
Tengo un script que encontré y estoy tratando de ejecutarlo, solo 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é set -e
hacer?
Respuestas:
Esta construcción es tan complicada que merece su propia sección.
set le permite cambiar los valores de las opciones de shell y establecer los parámetros posicionales, o mostrar los nombres y valores de las variables de shell.
La -e
opcion
-mi
Salga inmediatamente si hay una canalización (vea Tuberías), que puede consistir en un solo comando simple (vea Comandos simples), un comando subshell entre paréntesis (vea Agrupación de comandos) o uno de los comandos ejecutados como parte de una lista de comandos encerrada por llaves (ver Agrupación de comandos) 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 un tiempo o hasta la palabra clave, parte de la prueba en una declaración if, parte de cualquier comando ejecutado en un && o || lista excepto el comando que sigue al && o || final, cualquier comando en una tubería pero el último, o si el estado de retorno del comando se invierte con!. Una trampa en ERR, si se establece, se ejecuta antes de que salga el shell.
Esta opción se aplica al entorno de shell y a cada entorno de subshell por separado (consulte Entorno de ejecución de comandos) y puede hacer que los subshells 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 del manual de bash
man bash
en la sección: SHELL BUILTIN COMMANDS
o problema
help set
para un breve mensaje de ayuda.
help set
y / o man bash
son los correctos para set
.
set -e
en resumen, cuando está en la parte superior de su script bash, le dice al script que salga tan pronto como una línea del script falle (con algunas excepciones enumeradas en el manual). [1]
Como opción de depuración, a menudo se usa con set -x
, que es imprimir cada línea de comando expandida antes de la ejecución con un signo "+". [2]
Ver más en:
[1] https://www.peterbe.com/plog/set-ex
[2] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html
help set
es el manual completo de bashinfo bash
, si tiene instalado bash-doc.