[script sh] tester si une partition est montée?

tester si une partition est montée? [script sh] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-01-2004 à 17:40:54    

Bonjour
 
Je me suis remis à linux ya pas trop longtemps, et
je me suis décidé à essayer de faire des scripts un peu
plus évolué que juste lancé une ou des commandes.
 
Bien entendu comme tous débutant en la matière j'ai quelques
problèmes.
J'aimerai tester si une partition est montée. J'ai pensé à mount + grep:
 

#!/bin/sh
mount | grep /mnt/repertoire
 
if [ $? ]
then ...
else ...
fi


 
le problème c'est que le grep affiche dans la sortie standard,
et que $? retourne toujours 1 (il n'y a jamais d'erreur)
 
Je viens de chercher un peu partout, mais je n'ai rien trouvé.
 
Un solution serait de pouvoir tester si /mnt/repertoire est dans le fichier mtab, mais je ne sais pas faire non plus.
 
Si quelqu'un sait comment faire, ca me rendrai un grand service.


Message édité par elrond le 23-01-2004 à 17:42:52
Reply

Marsh Posté le 23-01-2004 à 17:40:54   

Reply

Marsh Posté le 23-01-2004 à 18:09:54    

bizarre :??:
 

blackknight% cat test          
#!/bin/sh
 
mount|grep $1
echo "renvoit $?"
 
blackknight% ./test /usr/local
/dev/hda5 on /usr/local type reiserfs (rw)
renvoit 0
blackknight% ./test bidule    
renvoit 1
blackknight%  

Reply

Marsh Posté le 23-01-2004 à 18:13:10    

ah, ben je vais appronfondir.
Merci

Reply

Marsh Posté le 23-01-2004 à 18:15:49    

le problème est sûrement au niveau du if....
 

blackknight% cat test                        
#!/bin/sh
 
mount|grep -q $1
 
if [ $? == 0 ]
then echo "renvoit 0";
else echo kaput;
fi
 
blackknight% ./test /usr/local
renvoit 0
blackknight% ./test bidule                  
kaput

Reply

Marsh Posté le 23-01-2004 à 18:17:02    

Remarques que grep -q permet justement de ne renvoyer que l'état de sorti ;)


Message édité par Acontios le 23-01-2004 à 18:17:14
Reply

Marsh Posté le 23-01-2004 à 18:27:20    

les partitions montées sont définies dans /etc/mtab
 


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 23-01-2004 à 18:28:18    

Y a un truc que je comprend pas:

#!/bin/sh
mount|grep -q $1
 
echo "renvoit $?"
 
if [ $? == 0 ]
then echo "toto";
else echo "titi";
fi


donne  
 

[boris@bobkiller tmp]$ essai bidule    
renvoit 1
toto
[boris@bobkiller tmp]$ essai /      
renvoit 0
toto


Message édité par elrond le 23-01-2004 à 18:28:31
Reply

Marsh Posté le 23-01-2004 à 18:29:59    

Dark_Schneider a écrit :

les partitions montées sont définies dans /etc/mtab
 
 


 
Oui je sais, j'ai mal formulé ma phrase, je voulais dire "si le fichier mtab contient /mnt/repertoire"

Reply

Marsh Posté le 23-01-2004 à 18:34:20    

Elrond a écrit :

Y a un truc que je comprend pas:

#!/bin/sh
mount|grep -q $1
 
echo "renvoit $?"
 
if [ $? == 0 ]
then echo "toto";
else echo "titi";
fi


donne  
 

[boris@bobkiller tmp]$ essai bidule    
renvoit 1
toto
[boris@bobkiller tmp]$ essai /      
renvoit 0
toto




 
C'est normal, la tu test le retour de echo "renvoit $?" !!!!
:D

Reply

Marsh Posté le 23-01-2004 à 18:37:25    

Ah oui, erreur de débutant ;)

#!/bin/sh
mount|grep -q $1
 
echo "renvoit $?"
 
mount|grep -q $1
 
if [ $? == 0 ]
then echo "toto";
else echo "titi";
fi


fonctionne bien.
Merci

Reply

Marsh Posté le 23-01-2004 à 18:37:25   

Reply

Marsh Posté le 23-01-2004 à 19:17:10    

Plutôt que d'executer deux fois les commandes mount et grep, il vaut mieux sauver le status avant de faire echo.
Je sais bien que c'est juste pour du debbuging, mais autant prendre de bonnes habitudes.
 

#!/bin/sh
mount|grep -q $1
sts=$?
 
echo "renvoit $sts"
if [ $sts == 0 ]
then echo "toto";
else echo "titi";
fi



---------------
Jean Pierre.
Reply

Marsh Posté le 23-01-2004 à 19:18:37    

J'en prend note. Merci (c'est vrai que les habitudes vaut mieux les prendre tôt)

Reply

Sujets relatifs:

Leave a Replay

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