86 votes

Que fait le passage du paramètre -xe à /bin/bash ?

Exactement ce que dit le titre. Je n'ai pas beaucoup de chance de trouver la documentation appropriée pour voir ce que fait -xe dans le cas d'utilisation suivant :

#!/bin/bash -xe

à quoi servent ces paramètres et où cela est-il documenté ?

0 votes

Parlez-vous des paramètres qui sont transmis au binaire BASH, ou parlez-vous des fonctions et des paramètres dans le langage de script BASH ?

0 votes

En se référant aux paramètres qui sont transmis au binaire BASH, tels que #!/bin/bash -xe

76voto

Eric Noob Points 531

Si vous lisez la page de manuel de bash vous trouverez ce qui suit en haut de l'écran OPTIONS section :

 All of the  single-character shell options documented in the
 description of the set builtin command can be used as options when the
 shell is invoked. In addition, bash interprets the following options
 when it is invoked...

Et si vous lisez la documentation pour le set plus loin dans la page de manuel, vous trouverez :

 -e      Exit  immediately  if a pipeline (which may consist of a
 single simple command),  a subshell command enclosed in parentheses,
 or one of the commands executed as part of a command list enclosed by
 braces (see SHELL GRAMMAR above) exits with a non-zero  status. 

 -x      After expanding each simple command, for command, case
 command, select command, or arithmetic  for  command,  display
 the  expanded value of PS4, followed by the command and its
 expanded arguments or associated word list.

En d'autres termes, -e fait sortir le Shell immédiatement lorsque quelque chose renvoie une erreur (ceci est souvent utilisé dans Shell Shell comme un mécanisme de sécurité), et -x permet l'exécution verbeuse des scripts de sorte que pour que vous puissiez voir ce qui se passe.

14voto

cde Points 581

Tapez ce qui suit sur votre console pour obtenir une explication des arguments de BASH :

bash -c "help set"

Pour répondre à votre question :

-e Sortir immédiatement si une commande se termine avec un état non nul.

-x Imprime les commandes et leurs arguments au fur et à mesure de leur exécution.

0 votes

Ou simplement help set ?

1 votes

@Nagev Pour obtenir la version bash de help set quel que soit le Shell que vous utilisez, la commande complète est nécessaire.

4voto

mgorven Points 29736

De la page d'accueil :

Toutes les options Shell à un seul caractère documentées dans la description de la commande set builtin peuvent être utilisées comme options lorsque la Shell est invoquée.

Jetez donc un coup d'œil à la set builtin .

2voto

becomingwisest Points 3258

Vous pensez au truc où vous faites set -x set -e set -... ? en cours d'exécution. help set les donne.

1 votes

Je pense à des paramètres utilisés tels que les suivants : #!/bin/bash -xe

1voto

mzet Points 191

J'utilise d'excellents Manuel de référence Bash comme documentation unique pour le langage Bash. Je l'ai trouvé plus utile que les pages de manuel. La section qui vous concerne (description des commutateurs -e, -x) se trouve ici : set builtin

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X