[gull] Question script Bash

Yves Martin ymartin59 at free.fr
Mon Jun 27 17:03:44 CEST 2011


----- "Daniel Cordey" <dc at mjt.ch> a écrit :

> On Monday 27 June 2011 15:52:10 Yves Martin wrote:
> 
> > Je découvre avec horreur en écrivant mes scripts que ce type
> d'écriture
> >   /usr/sbin/useradd --system --uid 600 --gid 600 2>&1 | tee -a $LOG
> > m'empêche d'obtenir la valeur de retour $? de la commande "useradd".
> > J'obtiens visiblement celle de "tee" et cela m'intéresse
> moyennement.
> 
> Le $? est *toujours* la valeur de retour de la derniere commande
> effectuee. Il faut donc se mefier des && || et autre | :-)
> 
> >   /usr/sbin/useradd --system --uid 600 --gid 600 2>&1 >> $LOG
> > fonctionne bien mais il manque un petit quelque-chose dans la
> console
> 
> Que te manque-t-il d'apres toi ?
> 
>   /usr/sbin/useradd --system --uid 600 --gid 600 2>&1 && echo "Added
> user ID 600:600" >>${LOG}

J'aimerai que les stdout / stderr sortent sur la console ET soient
copier dans le log en ayant ensuite la possibilité de contrôler le 
code de retour $? pour faire un "die" ou une action compensatoire.

Avec >> $LOG  l'opérateur est aveugle, surtout si un prompt demande
une réponse ou un traitement prend du temps (gros unzip) sans
"progression" visible.

Merci

-- 
Yves Martin


More information about the gull mailing list