Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1441 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°394808
elrond
Posté le 23-01-2004 à 17:40:54  profilanswer
 

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
mood
Publicité
Posté le 23-01-2004 à 17:40:54  profilanswer
 

n°394833
911GT3
en roue libre
Posté le 23-01-2004 à 18:09:54  profilanswer
 

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%  

n°394835
elrond
Posté le 23-01-2004 à 18:13:10  profilanswer
 

ah, ben je vais appronfondir.
Merci

n°394836
911GT3
en roue libre
Posté le 23-01-2004 à 18:15:49  profilanswer
 

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

n°394838
911GT3
en roue libre
Posté le 23-01-2004 à 18:17:02  profilanswer
 

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
n°394851
Dark_Schne​ider
Close the World, Open the Net
Posté le 23-01-2004 à 18:27:20  profilanswer
 

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


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
n°394852
elrond
Posté le 23-01-2004 à 18:28:18  profilanswer
 

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
n°394856
elrond
Posté le 23-01-2004 à 18:29:59  profilanswer
 

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"

n°394863
neriki
oenologue
Posté le 23-01-2004 à 18:34:20  profilanswer
 

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

n°394866
elrond
Posté le 23-01-2004 à 18:37:25  profilanswer
 

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

mood
Publicité
Posté le 23-01-2004 à 18:37:25  profilanswer
 

n°394888
aigles
Posté le 23-01-2004 à 19:17:10  profilanswer
 

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.
n°394890
elrond
Posté le 23-01-2004 à 19:18:37  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 

Sujets relatifs
Idée partitionScript + droit root
firewall : pourriez vous regarder svp ? + comment le tester ?Un petit peu d'aide avec un petit script bash
script perl pour irssiquelle est la partition que l'on peux dédier pour des données ?
script de reconnection[ Logiciels / Script ] Outils pour le MP3 / OGG et script pour LAME
Retailler ma partition ext3...[Gentoo] Besoin du script xdm [résolu]
Plus de sujets relatifs à : [script sh] tester si une partition est montée?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR