- Un script "task" qui possède une sortie standard &1 et d'erreur &2; appelé par le wrapper.
Je souhaiterai écrire dans un fichier : wrapper.stdout et wrapper.stderr; les sorties &1 et &2 de mon wrapper; tout en dissociant "task" et "wrapper" pour pouvoir sauvegarder &1 et &2 de ma "task" dans task.stdout et task.stderr
Je pensais utiliser un troisième descripteur "poubelle" &3; un peu de ce genre
exec 3<> /tmp/foo
echo a >&3
exec 3>&-
Mais je n'arrive pas à afficher ce qui se passe dans "task" tout est sauvegarder dans /tmp/foo sans afficher biensur. Donc est-ce qu'il y aurait une sortie standard secondaire qui n'est pas commune avec &1 ?
Désolé, c'est pas évidentç J'ai oublié de préciser que j'utilise "tee" pour pouvoir à la fois sauvegarder dans un fichier et afficher!
J'ai les taches qui sont lancées dans mon wrapper. Et je veux dissocier wrapper et tâches pour pas écrire en double.
e.g. Le "wrapper" créé 5 tâches, je voudrai avoir: - wrapper.log - tache1.log - tache2.log - tache3.log - tache4.log - tache5.log
Mais vu que wrapper appelle tache1, tache2, tache3, tache4, tache5. wrapper.log va contenir tache1,2,3.. Je cherche à savoir si il y a une sortie standard alternative, qui me permet d'afficher mais qui ne soit pas &1 ou &2. Juste pour séparer les taches du wrapper quand j'écris wrapper.log
#!/bin/bash #task.sh
echo "HERE IS MY task #$1.."
echo "[ERROR] Dummy error message from task # $1.." >&2
Je vous laisse lancer le script, actuellement voilà l'état de mon script. Mais je voudrais la sortie suivante :
wrapper.stdout:
HERE IS MY Wrapper..
End of wrapper..
wrapper.stderr: [ERROR] Dummy error message from wrapper.. [ERROR] 2nd Dummy error message from wrapper..
task1.stderr
[ERROR] Dummy error message from task 1..
task1.stdout HERE IS MY task #1..
Donc concrètement est-ce qu'il y a une sortie alternative à stdout/stderr qui permet d'afficher, mais pas de ne pas avoir le message de task1,..N en DOUBLE, comme dans le cas présent ?
je vais paraître borné : pourquoi ne pas attribuer à lui-même la gestion des sorties et des erreurs de chaque script. ? c'est-à-dire, que task s'occupe de ses messages et erreurs, et wrapper pareil.
tu sembles vouloir simplifier le problème en faisant tout dans wrapper, mais ça complique tout, au contraire.
mais peut-être est-ce la simplification pour l'exemple qui donne cette impression.
PS : répéter une commande à l'identique est un bon moyen de faire une erreur lors de modifications ultérieures. tu pourrais l'écrire une fois dans une boucle, qui itérerait sur les arguments à passer à la commande, qui serviraient pour le nommage des fichiers de log.
- Edité par dantonq 22 octobre 2016 à 7:57:26
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Shell descriptor
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique