著者: Bruno Cudini 日付: To: Yves Martin CC: Guilde ML 題目: Re: Question script Bash
On Mon, Jun 27, 2011 at 03:51:05PM +0200, Yves Martin wrote: > Bonjour,
>
> 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 la commande "useradd".
> J'obtiens visiblement celle de "tee" et cela m'intéresse moyennement.
>
> Evidemment
> /usr/sbin/useradd --system --uid 600 --gid 600 2>&1 >> $LOG
> fonctionne bien mais il manque un petit quelque-chose dans la console
>
> Que me conseillez-vous ?
Bonjour,
Comme c'est la première fois que je poste je me présente : Bruno Cudini,
étudiant en fin de licence pro à l'IUT2, et c'est moi le stagiaire dont
Xavier a parlé ici il y a quelques temps à l'occasion de la panne du
serveur de la Guilde.
Je pense que la commande mispipe correspond à ce que tu veux : elle
permet de renvoyer la valeur de retour de la première commande, ce qui
permet d'utiliser tee, less ou autre sans altérer le code de retour. La
commande deviendrait :
mispipe "/usr/sbin/useradd --system --uid 600 --gid 600 2>&1" "tee -a $LOG"
Elle est disponible dans le paquet moreutils de Debian.