Ubuntu : Problème vérification clé montée

Fermé
Papipen - 27 mai 2008 à 17:15
gnuoulipo Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 5 décembre 2015 - 28 mai 2008 à 09:37
Bonjour,

Je possède un script qui demande au système de monter ma clé en home persistant de de monter mon répertoire "/etc" placé sur la clé afin de remplacer celui présent sur le CD :

sudo mount /dev/sda1 /home/session
sudo mount --bind /home/session/etc /etc

Cependant, lorsque je n'ai aucuné clé, je voudrais pouvoir démarrer mon Live CD normalement (ce qui ne fonctionne pas pour le moment). Mon idée serait de faire :

Si sda1 n'est pas monté alors monter ma clé en sda1 et lancer ma commande de montage du répertoire etc
sinon si sda1 monté, je choisis sdb1 et je lance ma commande de montage du répertoire
sinon je fais rien et je lance mon LiVE CD.

Comment peut-on faire ce genre de test avec bash ? Mon script se trouve dans /etc/gdm/postlogin

J'ai testé le if mount /dev/sda1 /home/session; then... mais ça ne fonctionne pas.

Voila. Merci d'avance
A voir également:

6 réponses

salut, je pense que tu devrais trouver ta réponse [url=http://forum.ubuntu-fr.org/]ici[/url]

voila ...
0
euh ... enfin -_-" demande [url=http://forum.ubuntu-fr.org/]ici[/url]
0
dsl pour le "[url=http://forum.ubuntu-fr.org/]ici/url , j'ai essayer de faire : [url=http://forum.ubuntu-fr.org/] ici [ /url ] ( sans les espaces mais sa ne fonctionne pas )

[url=http://forum.ubuntu-fr.org/]ici[/url]
0
gnuoulipo Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 5 décembre 2015
27 mai 2008 à 17:49
Tu dois tester la variable d'environnement $?. Cette variable contient 0 si la commande s'est terminée normalement sinon elle contient un nombre supérieur à 0 si la commande s'est terminée par un échec.

Exemple : ma clef USB n'est pas montée, je la monte en /home/pierre/montage

[root@localhost ~]# mount /dev/sdb1 /home/pierre/montage
[root@localhost ~]#

J'affiche la valeur de $?

[root@localhost ~]# echo $?
0
[root@localhost ~]#

La clef est montée je tente de la monter

[root@localhost ~]# mount /dev/sdb1 /home/pierre/montage
mount: /dev/sdb1 est déjà monté ou /home/pierre/montage est occupé
mount: selon mtab /dev/sdb1 est déjà monté sur /home/pierre/montage
[root@localhost ~]#

J'affiche la valeur de $?

[root@localhost ~]# echo $?
32
[root@localhost ~]#

La valeur 32 correspond à l'indexation du message d'erreur affiché pour l'utilisateur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai suivi tes conseils et j'ai saisi le texte suivant dans mon script :

#je monte ma cle en sda1
mount /dev/sda1 /home/javacard

#si elle est monte ma variable sera = à 0
if [ "$?" = "0" ]then
#alors je monte mon repertoire etc
mount --bind /home/javacard/etc /etc
else
#si il ne l a pas montée sur sda1 j essaye sur sdb1
mount /dev/sdb1 /home/javacard

#si ma variable vaut 0 c'est bon
if [ "$?" = "0" ]then
#je monte mon repertoire etc
mount --bind /home/javacard/etc /etc
fi
fi


cependant, lors du démarrage de mon programme, je ne peux plus me connecter à ma session
0
gnuoulipo Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 5 décembre 2015
28 mai 2008 à 09:37
Désolé, là je ne peux pas répondre. Je ne vois pas clairement la manip que tu essaies de faire. Je suis sûr du test sur $?. Tu pourrais écrire [ $? -eq 0 ]. Je pense que cela ne changerait rien au problème. Le test numérique serait simplement plus cohérent.
0