[Linux] Question shell script : Mais pourquoi il exit comme ca ?

Antoine Delaporte adlp@::1
Mer 20 Nov 11:11:07 CET 2024


Bonjour bonjour !


Bon... j'ai une question qui me tarabuste depuis pas mal de temps…

Lorsque je fais des shell script, je comprends qu'il se finisse selon 3 
conditions :

     * Fin du script

     * exit XX

     * set -e, avec un biniou qui fini avec un exit code différent de 0


Sauf que… j'ai des scripts qui se suicident avant la fin, en ne 
respectant _aucune_ de ces conditions, et j'aimerais comprendre la magie 
du biniou.

Voici donc un exemple réel (oui excessivement simplifié)

#!/bin/bash
echo Premiere passe
docker exec nginx nginx -s reload
echo Seconde passe
docker exec nginx-mua nginx -s reload
echo Fin


Donc lorsque j'exécute ce script via une crontab, j'obtiens (dans le 
mail associé) Uniquement un "Premiere passe". Et je confirme la 
non-exécution du second reload...

Pour moi, la commende docker ne devrait pas pouvoir faire quitter le script.

Oui, je pourrais faire un bash -c "docker exec nginx......" mais je 
trouves cela relou.

Bref... est-ce que j'ai la berlue ou il y a une forme de logique ?



'Toine


PS: ça vaudrait peut-être le coup que je mette ce script exactement 
ainsi dans une crontab, mais ça ne me simplifie pas du tout la vie

PPS: pour ceux qui ont une impression de deja vu, oui ce mail a ete 
envoyé sur la mauvaise liste, par mes soins :-/ désolé encore.



-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://strasbourg.linuxfr.org/pipermail/linux/attachments/20241120/f1c05cf9/attachment.htm>


Plus d'informations sur la liste de diffusion linux