Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/07/2015, à 12:13

dva2tlse

[RéSOLU] stdout, stderr et subprocess

Bonjour,
je voudrais faire un script, en ksh ou bash je ne sais pas encore, pour exécuter plusieurs instances d'un même programme mais avec des entrés différentes, et dans des subprocess différents eux aussi. Je voudrais que toutes les sorties standard soient répercutées sur l'entrée standard du script, pour rediriger la sortie standard de celui ci vers un fichier que je pourrais consulter utérieurement.
J'aimerais bien aussi que les canaux stderr soient utilsables aussi puisque je suis en phase de développement du programme qui tourne dans les subprocess.

Pour l'instant, j'ai une boucle sur le nombre de subprocess voulus, NP, qui est passé en argument 1 au script, et chaque subprocess devrait tourner le programme avec un fichier de résultats FICRES en argument 2 et un fichier d'entrées FICINP en argument 3 :

echo
echo MTUVB: Debut... date=$(date)
echo
NP=$1
FICRES=$2
FICINP=$3
#
for I in $(seq 1 $NP) 
do
    cd /S/SCRATCH/DVAtmp/TMP$I
    echo MTUVB: Demarrage du TUVB dans TMP$I par \"\(../TUVB $I $FICRES $FICINP\) \&\" dans \$PWD=$PWD.
    echo
    (../TUVB $I $FICRES $FICINP) &
done
echo MTUVB: Fin.
echo
exit

Je le lance par "./MTUVB 3 p2srfd016Ti_3 el016Ti.inp >tmp016Ti_3B", mais le fichier tmp016Ti_3B vers lequel est redirigée la sortie standard du script ne contient que les sortie stanard du script, mais pas de ses subprocess' alors que c'est ce qui m'intéresse le plus.
Merci de m"aider; ça ne doit pas être bien compiqué mais ça fait pas mal de temps que je tourne autour sans trouver.
David

Dernière modification par dva2tlse (Le 29/07/2015, à 14:37)


xubuntu 22.04 dans un PC assemblé
PS: Dis toto, pourquoi l'univers existe-t'il ?
Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se contacter auparavant.

Hors ligne

#2 Le 24/07/2015, à 14:59

claudius01

Re : [RéSOLU] stdout, stderr et subprocess

Bonjour,

Peux-tu remplacer la ligne

(../TUVB $I $FICRES $FICINP) &

par

../TUVB $I $FICRES $FICINP &

Pour rediriger stderr du process TUVB vers stdout, faire:

2>&1 ../TUVB $I $FICRES $FICINP &

Hors ligne

#3 Le 24/07/2015, à 16:34

dva2tlse

Re : [RéSOLU] stdout, stderr et subprocess

Ok merci claudius01; on verra ça lundi parce que là, je suis rentré chez ma maison, mais comme je l'ai dit plus haut, ça fait pas mal de temps que je tourne autour avec des essais variés, mais ça je n'avais pas encore essayé.
David
PS: ceci est la même histoire qu'un autre fil où tu as répondu aussi.


xubuntu 22.04 dans un PC assemblé
PS: Dis toto, pourquoi l'univers existe-t'il ?
Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se contacter auparavant.

Hors ligne