Lancer un script depuis un autre (log et code retour)

Résolu
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   -  
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

Voilà je fais un script dans lequel je lance un autre script.
Rien de bien extraordinaire pour le moment...

Chaque script est enregistré dans un fichier de log différent et chacun gère sa log

Mon but est donc de :
- Lancer un script script2 depuis script1
- Afficher la log de script2 dans celle de script1
- La sortie console doit rester normale et contenir les deux scripts
- On garde les deux fichiers de log
- Je récupère le code retour de script2 dans script1

J'ai cherché j'ai deux solutions :
- ./script2 params | tee -a $LOG (ça marche comme il faut mais je n'ai pas le code retour)
- ./script2 params >> $LOG (super mais non j'ai plus la sortie console)

Voilà y'a peut-être un truc tout bête qui m'échappe...



A voir également:

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
avec pipefail, le $? est celui de script2 et pas de tee
set -o pipefail
./script2 params | tee -a $LOG
echo $?
1
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
Ok super ça marche !
Juste une dernière question :
Comment je fais pour annuler sa après ?
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
J'ai pas trouvé dans le man... '-_-
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
set +o pipefail
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
vu que sa marche pour set -x...
La réponse semble logique d'un coup...

Désolé du dérangement et encore milles merci =)
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
on peut aussi utiliser PIPESTATUS, pas besoin de set + ou -
$ ls xx | tee zz
ls: cannot access xx: No such file or directory
$ echo $?
0
$ ls xx | tee zz
ls: cannot access xx: No such file or directory
$ echo ${PIPESTATUS[0]}
2
$ 
0
arthurg95 Messages postés 2421 Date d'inscription   Statut Membre Dernière intervention   341
 
Bonjour,

Et en faisant :
./script2 params > tmp
cat tmp >> $LOG
cat tmp


Pas super optimisé, mais c'est simple et normalement ça marche ;)
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
oui certes sa marche...
Mais comme tu dis pas super optimisé. ^^
En plus techniquement je crée la log à l'aide d'une fonction qui permet de dater le script
Exemple :
fctlog "Coucou" $LOG

Affiche "Coucou" sur l'écran et "240713_15h32m Coucou" dans la log.

Je suis compliqué hein ^^
0
Utilisateur anonyme
 
Oui tu cherches les bestioles lol ^^
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
Je sais bien ! =3
Mais t'as pas idée comment c'est pratique pour mesurer un traitement par exemple.
0
Utilisateur anonyme
 
C'est l'infinie avec PHP ^^, Je suis en retard là dessus lol
Ben bon courage !!!
0
Lapourax Messages postés 3014 Date d'inscription   Statut Contributeur Dernière intervention   334
 
php ça fait pas tout !
Bref merci pour ton passage et ton soutiens. =)
0