[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