[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: