J'ai un script que j'ai trouvé et j'essaie de le faire fonctionner, il télécharge et installe simplement les bibliothèques d'exécution Apache. La première ligne est set -e
et elle provoque une erreur; qu'est-ce que ça set -e
fait?
J'ai un script que j'ai trouvé et j'essaie de le faire fonctionner, il télécharge et installe simplement les bibliothèques d'exécution Apache. La première ligne est set -e
et elle provoque une erreur; qu'est-ce que ça set -e
fait?
Réponses:
Cette fonction intégrée est si compliquée qu'elle mérite sa propre section.
set vous permet de modifier les valeurs des options du shell et de définir les paramètres de position, ou d'afficher les noms et les valeurs des variables du shell.
L' -e
option
-e
Quittez immédiatement si un pipeline (voir Pipelines), qui peut consister en une seule commande simple (voir Commandes simples), une commande de sous-shell entre parenthèses (voir Groupement de commandes), ou l'une des commandes exécutées dans le cadre d'une liste de commandes entourée de accolades (voir Groupement de commandes) renvoie un état différent de zéro. Le shell ne se ferme pas si la commande qui échoue fait partie de la liste de commandes immédiatement après un mot clé while ou until, une partie du test dans une instruction if, une partie de toute commande exécutée dans un && ou || liste à l'exception de la commande suivant le && ou || final, toute commande dans un pipeline sauf le dernier, ou si l'état de retour de la commande est inversé avec!. Un trap sur ERR, s'il est défini, est exécuté avant la fermeture du shell.
Cette option s'applique à l'environnement shell et à chaque environnement de sous-shell séparément (voir Environnement d'exécution de commandes) et peut entraîner la fermeture des sous-shell avant d'exécuter toutes les commandes du sous-shell.
Source: www.gnu.org
Modifié en raison du commentaire de @ psusi ci-dessous.
De plus, vous pouvez lire la page de manuel de bash
man bash
dans la section: SHELL BUILTIN COMMANDS
ou problème
help set
pour un court message d'aide.
help set
et / ou man bash
sont les bons pour set
.
set -e
en bref, lorsqu'il se trouve en haut de votre script bash, indique au script de se fermer dès qu'une ligne du script échoue (avec quelques exceptions répertoriées dans le manuel). [1]
En tant qu'option de débogage, elle est souvent utilisée avec set -x
, qui consiste à imprimer chaque ligne de commande étendue avant l'exécution avec un signe "+". [2]
Voir plus à:
[1] https://www.peterbe.com/plog/set-ex
[2] http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html
help set
et le manuel bash complet l'estinfo bash
si vous avez installé bash-doc.