Re: [bash] exitcode
Le vendredi 15 mars 2013 à 15:26:30, juke@free.fr 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. Donc
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
Reply to: