Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1311 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [ksh] Ecrire dans STDERR sans redirection ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ksh] Ecrire dans STDERR sans redirection ?

n°1228050
Deadlock
Feck off, cup !
Posté le 21-10-2005 à 14:31:32  profilanswer
 

Salut,
 
Connaissez-vous un moyen permettant d'écrire directement dans stderr mais sans redirection (une option magique d'echo ou de printf peut être) ?
J'ai un script qui en gros ressemble à ça:
 

LOGF=/root/$0.log
ERRF=/root/$0.err
 
[ -f $ERRF ] && rm $ERRF ; [ -f $LOGF && ] rm $LOGF
 
for host in `cat hosts.list`
do
   [...] qques commandes ping, scp, ssh sur $host [...]
done > $LOGF 2>$ERRF


Rien de bien particulier en fait. Mais j'aimerai dans la boucle do/done écrire des balises du genre "$host BEGIN" et "$host END" dans les deux fichiers log.
Une idée lumiseuse pour éviter d'avoir à rediriger le STDOUT et STDERR (cmd >$LOGF 2>$ERRF) de chaque commande de la boucle ?
Merci d'avance :hello:


Message édité par Deadlock le 21-10-2005 à 14:32:00

---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
mood
Publicité
Posté le 21-10-2005 à 14:31:32  profilanswer
 

n°1228162
Deadlock
Feck off, cup !
Posté le 21-10-2005 à 15:53:02  profilanswer
 

Bon ben j'ai trouvé entre temps ... je vous donne la (une) solution: utiliser print -u# ou #=output descriptor
 
Par défaut, print écrit sur STDOUT, donc #1

root@admhost:[/root]# print toto
toto
root@admhost:[/root]# print toto > /dev/null
root@admhost:[/root]#


Par contre en lui spécifiant -u2 il écrit sur #2 (STDERR)

root@admhost:[/root]# print -u2 toto
toto
root@admhost:[/root]# print -u2 toto > /dev/null
toto
root@admhost:[/root]# print -u2 toto 2>/dev/null
root@admhost:[/root]#

Bon weekend !


Message édité par Deadlock le 21-10-2005 à 15:54:26

---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.
n°1228266
matafan
Posté le 21-10-2005 à 17:20:43  profilanswer
 

Met des "{ ... }" autour de ton boc, et redirige le tout vers stderr :

/home/nicolas $ echo toto; echo tata > /dev/null
toto
/home/nicolas $ { echo toto; echo tata; } > /dev/null

n°1228345
Deadlock
Feck off, cup !
Posté le 21-10-2005 à 18:16:52  profilanswer
 

Le problème est que j'ai besoin de séparer les erreurs et les outputs dans la boucle do/done. Mais dans cette même boucle je veux aussi mettre des balises dans les deux fichiers. Le print -u2 me permet de le faire.


---------------
Institutions européennes: Ensemble d'outils dont le but est de transformer une grande quantité d'argent en merde. Cette merde est utilisée pour créer de nouveaux fonctionnaires. L'argent restant payant des externes pour faire leur travail.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [ksh] Ecrire dans STDERR sans redirection ?

 

Sujets relatifs
Redirection.ecrire sur un page via un formulaire
écrire en japonaisredirection vers une page web
avec VBS ecrire dans un fichier exel dans des champs a1 a2 ...[résolu] redirection vers une page autre site
Redirection permanante 301 ?? Help meRéférencement d'un site et redirection
redirection htaccess particulière[php] écrire du texte a l'écran em passant par un header
Plus de sujets relatifs à : [ksh] Ecrire dans STDERR sans redirection ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR