[bash] exitcode

Le
Philippe Delavalade
Bonjour.

Dans une commande du type
time { command 2>&1 | tee fichier; }
comment peut-on récupérer l'exitcode de « command » ?

Merci d'avance.

--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20130315133958.GA16694@magellan
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sandro CAZZANIGA
Le #25282762
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
------enig2IANHDUWTFWRRISVXPJQO
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Le 15/03/2013 14:39, Philippe Delavalade a écrit :
Bonjour.

Dans une commande du type
time { command 2>&1 | tee fichier; }
comment peut-on récupérer l'exitcode de « command » ?

Merci d'avance.



Bonjour,


echo $! ou echo $? devrait faire l'affaire.

--
Sandro Cazzaniga
Jabber:
Twitter: @Kharec


------enig2IANHDUWTFWRRISVXPJQO
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJRQyUuAAoJEOk/tJ1aQIB9SksH/AjX3aUEPEVSuqEupVhPBoN8
gAG79pLZqa4ND7CxbSqh4uJ+Stu51NfVjSrE80rBk2z7HVJ8BBhlrPGv+l477kwg
xUPOeF8FfJ2g/oTJQKJEUntoD81LrKIhFTD+P88WVyh1MXCyRoS0UwwuiHhbXm7A
6BxqBGUH0eMQP7hqM2J6k/f7l5R9IPR06yrQquao9MXntoe8CSeGHxRjGK0YnPxC
pyOdx0YKx9uET2VtgQEw2bbQuBR3HgKXqP4aWDzlujXwm2OYhRI3UGRgvMN3raUc
GEVH7PaVxJAOHZZYGv5QXv4YYJ32+SCc+I/iOYiHytMUL+076KNjiHwF3oabbTA µ5b
-----END PGP SIGNATURE-----

------enig2IANHDUWTFWRRISVXPJQO--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Philippe Delavalade
Le #25282862
Le vendredi 15 mars à 14:42, Sandro CAZZANIGA a écrit :
Le 15/03/2013 14:39, Philippe Delavalade a écrit :
> Bonjour.
>
> Dans une commande du type
> time { command 2>&1 | tee fichier; }
> comment peut-on récupérer l'exitcode de « command » ?
>
> Merci d'avance.
>
Bonjour,


echo $! ou echo $? devrait faire l'affaire.



Il me semble que dans ce cas $? donne le code de sortie de la commande time
; par exemple

time { bidule 2>&1 | tee truc.log; }

echo $?
donne 0.

Pour la même commande bidon, echo $! ne donne rien.
--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Basile Starynkevitch
Le #25282832
On Fri, Mar 15, 2013 at 02:39:58PM +0100, Philippe Delavalade wrote:
Bonjour.

Dans une commande du type
time { command 2>&1 | tee fichier; }
comment peut-on récupérer l'exitcode de « command » ?




Essaie:

time { (command; exit_de_ma_commande=$? ) 2>&1 | tee fichier; }

puis

echo $exit_de_ma_commande

cordialement
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Sandro CAZZANIGA
Le #25282822
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
------enig2GKLLNOEVKSKDQKNSCKUC
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Le 15/03/2013 15:07, Philippe Delavalade a écrit :
Le vendredi 15 mars à 14:42, Sandro CAZZANIGA a écrit :
Le 15/03/2013 14:39, Philippe Delavalade a écrit :
Bonjour.

Dans une commande du type
time { command 2>&1 | tee fichier; }
comment peut-on récupérer l'exitcode de « command » ?

Merci d'avance.



Bonjour,


echo $! ou echo $? devrait faire l'affaire.



Il me semble que dans ce cas $? donne le code de sortie de la commande time
; par exemple

time { bidule 2>&1 | tee truc.log; }

echo $?
donne 0.

Pour la même commande bidon, echo $! ne donne rien.



Non, echo $? donne le code de retour de la dernière commande lancée.

--
Sandro Cazzaniga
Jabber:
Twitter: @Kharec


------enig2GKLLNOEVKSKDQKNSCKUC
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJRQyxUAAoJEOk/tJ1aQIB9MMIIAJIloW62Zwm/HiW00v6kdk4q
U732Dp+OEAbeWDV19/JDmXvKIQ+E47j3eqlMquigCQyzsb2bL4nfe8gmremsIORI
Tcvq3QxGXRWL7WlzPZNoxs2feW89viNZo26F15hX/J9QPVqb6eahE99LSVvXO6Zp
ltLEWfujaBAgM7M14xvXTZI8op42FmH4dQuNWjX25dwwCTZW3y9E1C6xhFbS4G61
eZbmsdpqJBdn80wdg/bRjAZMNFll1SdwvDaoMr7lcBiJm3+ahoeIskXR6gOMyH8E
nnuFuV0+PixhQ8pp5EnLtW3TiyxljBQBbDeSXvv6qS/UdUbeJKW1enP7ssHQTsE Õ4o
-----END PGP SIGNATURE-----

------enig2GKLLNOEVKSKDQKNSCKUC--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
juke
Le #25282902
On Fri, Mar 15, 2013 at 02:42:01PM +0100, Sandro CAZZANIGA wrote:
echo $! ou echo $? devrait faire l'affaire.



quelle est la difference entre les deux ?

Julien.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Sylvain L. Sauvage
Le #25282942
Le vendredi 15 mars 2013 à 15:26:30, a écrit :
On Fri, Mar 15, 2013 at 02:42:01PM +0100, Sandro CAZZANIGA


wrote:
> echo $! ou echo $? devrait faire l'affaire.

quelle est la difference entre les deux ?



$? est le code retour de la dernière commande.
$! est le PID du processus en arrière plan le plus récent.

man sh (ou bash ou dash ou autresh)

Pour ce qui est de time, en Bash, c’est un mot-clef interne
(built-in) qui n’a pas d’autre effet que d’afficher le temps
passé. Ce n’est pas une vraie commande, juste un mot-clef. Don c
le code retour est celui du reste de la ligne de commande.

→ time { false; } ; echo $?

En revanche, /usr/bin/time est un vrai programme et celui-ci a
un code retour qui est le même que celui de la commande passée
en argument si elle se termine normallement, sinon, 128 plus le
code du signal qui a arrêté le programme.

À noter que le builtin time est plus souple que le programme
time. P.ex. /usr/bin/time ne reconnaît pas les commandes
groupées ({ … }).

--
Sylvain Sauvage

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Vincent Lefevre
Le #25282962
On 2013-03-15 15:15:16 +0100, Basile Starynkevitch wrote:
Essaie:

time { (command; exit_de_ma_commande=$? ) 2>&1 | tee fichier; }

puis

echo $exit_de_ma_commande



Puisque (command; exit_de_ma_commande=$? ) lance un sous-shell,
ça ne va pas marcher.

--
Vincent Lefèvre 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Vincent Lefevre
Le #25282972
On 2013-03-15 14:39:58 +0100, Philippe Delavalade wrote:
Dans une commande du type
time { command 2>&1 | tee fichier; }
comment peut-on récupérer l'exitcode de « command » ?



Il y a $PIPESTATUS en bash et $pipestatus en zsh.

--
Vincent Lefèvre 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Philippe Delavalade
Le #25282932
Le vendredi 15 mars à 15:15, Basile Starynkevitch a écrit :
On Fri, Mar 15, 2013 at 02:39:58PM +0100, Philippe Delavalade wrote:
> Bonjour.
>
> Dans une commande du type
> time { command 2>&1 | tee fichier; }
> comment peut-on récupérer l'exitcode de « command » ?


Essaie:

time { (command; exit_de_ma_commande=$? ) 2>&1 | tee fichier; }

puis

echo $exit_de_ma_commande

cordialement



Ça ne marche pas tel quel mais ça m'a donné la bonne idée :

time { (command; echo $? ) 2>&1 | tee fichier; }

Donc merci beaucoup.

--
Ph. Delavalade

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme