Very Good,
C'est clair,
En fait il semblerait qu'il y avait quelques caracteres invisibles
qui aussi boggaient mon shell.
> On Mon, Mar 23, 2009 at 02:25:01PM +0100, Guillaume Allegre wrote:
>> Le Mon 23 Mar 2009 à 13:06 +0000, Patrick Dupre a ecrit :
>>> Bonjour,
>>>
>>> Dans un shell je fais unne commande (par example: mount), comment je
>>> peux tester le retour, (cad si le mount c'est bien passe) ?
>>>
>>> J'ai essaye: if [ $? != 0 ]
>>> mais cela ne fonctionne pas correctement !
>>
>> Tu utilises l'opérateur pour les chaînes, il te faut celui pour les entiers
>> ( -eq ou -ne ).
>> man bash, section CONDITIONAL EXPRESSIONS
>
> Mh… peut-être vaut-il mieux ré-expliquer la syntaxe de « if » pour
> commencer.
>
> Depuis dash(1) :
>
> if list
> then list
> [ elif list
> then list ] ...
> [ else list ]
> fi
>
> « list » indique ici une liste de commandes. Pour la liste utilisé par
> « if » et « elif », si le code de retour de l'exécution de la liste est
> 0, alors la liste de commande qui se trouve après le « then » est
> exécuté.
>
> Donc tout simplement :
>
> if mount /dev/sda1 /media/sda1; then
> echo OK
> else
> echo KO
> fi
>
> La construction que l'on voit généralement utilise la commande « [ »,
> souvent un builtin du shell, mais sous Debian, on peut aussi l'exécuter
> par "/usr/bin/[". Souvent c'est un lien en dur vers « /usr/bin/test ».
> Voir test(1) pour les détails.
>
> Suis-je clair ?
>
> À bientôt,
>
--
---
==========================================================================
Patrick DUPRÉ | |
Department of Chemistry | | Phone: (44)-(0)-1904-434384
The University of York | | Fax: (44)-(0)-1904-432516
Heslington | |
York YO10 5DD United Kingdom | | email: pd520@???
==========================================================================