Comment rediriger la sortie standard
Résolu
bheadman
Messages postés
105
Date d'inscription
Statut
Membre
Dernière intervention
-
cjean -
cjean -
Bonjour,
Bon c'est un peu plus compliqué que ça en a l'aire, car je connais les principes d'entrée sortie standard :
1 entrée standard (ex :clavier) > prog.sh 1> sortie standard (ex: écran)
2> sortie standard des erreurs (le plus souvent idem que "1>")
Mon problème c'est que pour débeuguer un prog je l'éxecute de la manière suivante :
sh -x prog.sh
Mais ce dernier étant relativement long je ne vois pas la totalité du retour sur mon shell (putty). Je souhaitais donc savoir comment rediriger la sortie "std", de ce mode de fonctionnement précis, vers un fichier texte.
Pour info j'ai déjà essayé ceci :
sh -x prog.sh > tralala.txt
mais je ne récupère que la sortie std de ma commande "grep" qui se trouve dans le prog
Cordialement.
BHeaDMaN
Bon c'est un peu plus compliqué que ça en a l'aire, car je connais les principes d'entrée sortie standard :
1 entrée standard (ex :clavier) > prog.sh 1> sortie standard (ex: écran)
2> sortie standard des erreurs (le plus souvent idem que "1>")
Mon problème c'est que pour débeuguer un prog je l'éxecute de la manière suivante :
sh -x prog.sh
Mais ce dernier étant relativement long je ne vois pas la totalité du retour sur mon shell (putty). Je souhaitais donc savoir comment rediriger la sortie "std", de ce mode de fonctionnement précis, vers un fichier texte.
Pour info j'ai déjà essayé ceci :
sh -x prog.sh > tralala.txt
mais je ne récupère que la sortie std de ma commande "grep" qui se trouve dans le prog
Cordialement.
BHeaDMaN
A voir également:
- Comment rediriger la sortie standard
- Comment rediriger une adresse mail - Guide
- Pilote son standard - Télécharger - Pilotes & Matériel
- Remettre un pc en sortie d'usine - Guide
- Airpods 3 date de sortie - Guide
- Office 2024 date de sortie - Accueil - Bureautique
4 réponses
> ca ecrase a chaque fois le fichier
>> " append" ajoute des lignes sans effacer les autres
>> " append" ajoute des lignes sans effacer les autres
bheadman
Messages postés
105
Date d'inscription
Statut
Membre
Dernière intervention
de toute façon je fait un "echo>tralala.txt" avant chaque traitement :D afin de ne pas avoir un fichier de 300Mo en moins de temps qu'il ne faut pour l'écrir.
Surement une réponse stupide mais comme j'ai pas la même approche du problème on sait jamais..
Et si tu enlevais le grep de ton programme pour avoir tout sur le txt...puis filtrer après ?
Et si tu enlevais le grep de ton programme pour avoir tout sur le txt...puis filtrer après ?
mon grep fait partie du script est en est une fonction indispensable, c'est volontairement que je n'ai pas redirigé le sortie std (1 et 2 pour ceux qui suivent :D) et que donc celui-ci affiche son résultat dans le shell.
vioci en exemple le gros du programme, hors mis les déclarations de variable et autre test en tout genre :
while [ ${Line} -lt ${Num_Line} ]
do
User_Path=`nawk -v x=${Line} 'NR == x { print }' ${File_Login}`
echo ${User_Path} | egrep "${User_List}" <<----- ici j'ai omis, volontairement, la chaine "1> /dev/null 2>&1"
retval=$?
if [ $retval != 0 ]
then
echo ${User_Path} >> ${File_temps}
else
User_Ribfou=`echo ${User_Path} | nawk -F":" '{ print $5 |"cut -c1-3" }'`
if [ ${User_Ribfou} != usr ]
then
echo ${User_Path} | sed 's/:'"${User_Ribfou}"'/:usr/g' >> ${File_temps}
fi
fi
Line=`expr ${Line} + 1`
done
vioci en exemple le gros du programme, hors mis les déclarations de variable et autre test en tout genre :
while [ ${Line} -lt ${Num_Line} ]
do
User_Path=`nawk -v x=${Line} 'NR == x { print }' ${File_Login}`
echo ${User_Path} | egrep "${User_List}" <<----- ici j'ai omis, volontairement, la chaine "1> /dev/null 2>&1"
retval=$?
if [ $retval != 0 ]
then
echo ${User_Path} >> ${File_temps}
else
User_Ribfou=`echo ${User_Path} | nawk -F":" '{ print $5 |"cut -c1-3" }'`
if [ ${User_Ribfou} != usr ]
then
echo ${User_Path} | sed 's/:'"${User_Ribfou}"'/:usr/g' >> ${File_temps}
fi
fi
Line=`expr ${Line} + 1`
done
Honte sur moi,
une fois n'est pas coutume ma plume (ou mon clavier) à été plus vif que mon esprit.
Voici la solution à ce pitit problème :
sh -x prog.sh 2> tralala.txt
En réfléchissant 30s (en relisant mon précédent poste) je me suis dit que le "-x" étant un mode débeugue permettant de voir toutes erreurs, il serait fort probable que la sortie std soit la même que pour les erreurs et BINGO.
J'espère au moins que ce petit bout poste serviras à quelqu'un d'autre.
Cdlt.
BHeaDMaN
une fois n'est pas coutume ma plume (ou mon clavier) à été plus vif que mon esprit.
Voici la solution à ce pitit problème :
sh -x prog.sh 2> tralala.txt
En réfléchissant 30s (en relisant mon précédent poste) je me suis dit que le "-x" étant un mode débeugue permettant de voir toutes erreurs, il serait fort probable que la sortie std soit la même que pour les erreurs et BINGO.
J'espère au moins que ce petit bout poste serviras à quelqu'un d'autre.
Cdlt.
BHeaDMaN