Ho uno script che ho trovato e sto cercando di farlo funzionare, scarica e installa le librerie di runtime di Apache. La prima riga è set -e
e sta causando un errore; ciò che set -e
fare?
Ho uno script che ho trovato e sto cercando di farlo funzionare, scarica e installa le librerie di runtime di Apache. La prima riga è set -e
e sta causando un errore; ciò che set -e
fare?
Risposte:
Questo built-in è così complicato che merita una sua sezione.
set consente di modificare i valori delle opzioni della shell e impostare i parametri posizionali o di visualizzare i nomi e i valori delle variabili della shell.
L' -e
opzione
-e
Esci immediatamente se una pipeline (vedi Pipeline), che può consistere in un singolo comando semplice (vedi Comandi semplici), un comando subshell racchiuso tra parentesi (vedi Raggruppamento comandi) o uno dei comandi eseguiti come parte di un elenco comandi racchiuso da le parentesi graffe (vedere Raggruppamento comandi) restituiscono uno stato diverso da zero. La shell non si chiude se il comando che fallisce fa parte dell'elenco dei comandi immediatamente dopo un po 'o fino alla parola chiave, parte del test in un'istruzione if, parte di qualsiasi comando eseguito in un && o || list tranne il comando che segue l'ultimo && o ||, qualsiasi comando in una pipeline tranne l'ultimo, o se lo stato di ritorno del comando viene invertito con!. Una trap su ERR, se impostata, viene eseguita prima della chiusura della shell.
Questa opzione si applica all'ambiente shell e a ciascun ambiente subshell separatamente (consultare Ambiente di esecuzione comandi) e può causare la chiusura delle subshell prima di eseguire tutti i comandi nella subshell.
Fonte: www.gnu.org
Modificato grazie al commento di @ psusi di seguito.
Inoltre puoi leggere la pagina del manuale di bash
man bash
alla sezione: SHELL BUILTIN COMMANDS
o problema
help set
per un breve messaggio di aiuto.
help set
e / o man bash
sono quelli corretti per set
.
set -e
in breve, quando si trova nella parte superiore dello script bash, dice allo script di uscire non appena una riga dello script fallisce (con alcune eccezioni elencate nel manuale.) [1]
Come opzione di debug, viene spesso utilizzato con set -x
, ovvero stampare ogni riga di comando espansa prima dell'esecuzione con un segno "+". [2]
Vedi di più su:
[1] https://www.peterbe.com/plog/set-ex
[2] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html
help set
e il manuale completo di bash lo èinfo bash
, se è installato bash-doc.