[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