tt bete

tt bete - Shell/Batch - Programmation

Marsh Posté le 15-11-2004 à 20:21:18    

#!/bin/sh  
if true ; then  
echo Le premier test est VRAI($?)  
else  
echo Le premier test est FAUX($?)  
fi  
 
 
bon la je pose une questio bete jai pas eut le temps de chercher alors si vous pouvez faire exception et me repondre j,ai pas torp compris ce batch dans linux,ie est que true est une condition?et le $ je vois pas a quoi il renvoit?
 
merci

Reply

Marsh Posté le 15-11-2004 à 20:21:18   

Reply

Marsh Posté le 16-11-2004 à 04:06:54    

true est une fonction du shell qui renvoie vrai (i.e code de retour 0). A la place de "true", tu pourrais utiliser n'importe quelle autre fonction du shell, ou n'importe quel exécutable sur ton système. Par exemple :
 
if grep -q "^$user:" /etc/passwd
then
    ...
fi
 
Tu pourrais aussi utiliser une expression :
 
if [ `whoami` = 'root' ]
then
    ...
fi
 
$? est une variable du shell qui contient le code de retour de la dernière évaluation. Donc dans ton example ça sera toujours 0 puisque true réussit toujours. Dans mon premier example ça sera 0 si $user a un compte sur le système (succès du grep), ou 1 sinon (échec du grep). Dans mon deuxième exempleça sera 0 si tu es root (succès de la comparaison), ou 1 sinon.
 
http://www.gnu.org/software/bash/manual/bashref.html

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed