Pages : 1
#1 Le 03/06/2006, à 18:36
- ludox
Script...
Bonjour,
J'ai essayé de m'écrire un script pour monter et demonter mes clés et lecteurs usb mais voilà ce que me répond
./Mcleusb.sh: line 18: syntax error near unexpected token `fi'
./Mcleusb.sh: line 18: `fi'
Et voilà mon script :
#!/bin/sh
echo "Que veux tu monter/demonter Ludo ?
1 - Monteur clé USB
2 - Monter lecteur carte memoire XD
3 - Demonter"echo -n "Choix : "
read choixif $choix=3 ;
then
sudo umount /media/cleUSB
sudo umount /media/readerUSB
elsefi
if $choix=2 ;
then
sudo mkdir /media/readerUSB
sudo mount -t vfat /dev/sdc1 /media/readerUSB
elsefi
if $choix=1 ;
then
sudo mkdir /media/cleUSB
sudo mount /dev/sda1 /media/cleUSB
elsefi
Quelqu'un saurait me dire ce qui ne va pas ?
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
#2 Le 03/06/2006, à 18:44
- cep
Re : Script...
sudo inutile pour monter les disques et clés externes
http://forum.ubuntu-fr.org/viewtopic.php?id=41031
Hors ligne
#3 Le 03/06/2006, à 18:46
- Lord Alembert
Re : Script...
c'est end if et pas fi je pense.
Hors ligne
#4 Le 03/06/2006, à 18:53
- jr95
Re : Script...
Il faut au moins une instruction entre le "else" et le "fi".
Dans ton cas, il suffit de supprimer les lignes "else" cette erreur ne devrait plus apparaitre.
Hors ligne
#5 Le 03/06/2006, à 19:41
- ludox
Re : Script...
sudo inutile pour monter les disques et clés externes
http://forum.ubuntu-fr.org/viewtopic.php?id=41031
Formidable ca.
Et tous les users sont dans plugdev d'office ?
Comment aurais je pu le savoir autrement ?
(histoire de trouver d'autres astuces du genre sans attendre de me poser la question)
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
#6 Le 03/06/2006, à 19:44
- ludox
Re : Script...
J'ai viré les else et j'ai viré les mkdir, je laisserai les rep permanents
car sans sudo pas de mkdir ?
J'ai donc ajouter un petit P partout.
Par contre maintenant j'ai ca :
./Mcleusb.sh: line 12: 3=3: command not found
./Mcleusb.sh: line 18: 3=2: command not found
./Mcleusb.sh: line 25: 3=1: command not found
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
#7 Le 04/06/2006, à 01:06
- caverne
Re : Script...
La syntaxe est :
if [ $choix=3 ] ;
then
sudo umount /media/cleUSB
sudo umount /media/readerUSB
fi
Hors ligne
#8 Le 04/06/2006, à 01:24
- ludox
Re : Script...
Ok, ca m'avait échappé.
Je ne me souviens pas avoir vu les crochets sur les sites que j'ai consulté...
Je modifie de ce pas.
....................................
Nan, ca marche toujours pas :
Que veux tu monter/demonter Ludo ?
1 - Monteur clé USB
2 - Monter lecteur carte memoire XD
3 - Demonter
Choix : 2
Erreur: device invalide /media/cleUSB (doit être dans /dev)↵
Erreur: device invalide /media/readerUSB (doit être dans /dev)↵
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or soErreur : impossible de détruire le point de montage: Aucun fichier ou répertoire de ce type
Erreur: ne peut déterminer le chemin réel de ce périphérique: Aucun fichier ou répertoire de ce type
Je remets le script car j'ai modifié plusieurs trucs depuis le début...
J'ai mis des espaces comme tu m'as indiqué entre les crochets.
J'ai aussi remplacer sdc1 par sdc tout court que me donne dmesg pour la carte memoire.
#!/bin/sh
echo "Que veux tu monter/demonter Ludo ?
1 - Monteur clé USB
2 - Monter lecteur carte memoire XD
3 - Demonter"echo -n "Choix : "
read choixif [ $choix=3 ] ;
then
pumount /media/cleUSB
pumount /media/readerUSB
fiif [ $choix=2 ] ;
then
pmount -t vfat /dev/sdc /media/readerUSBfi
if [ $choix=1 ] ;
then
pmount /dev/sda1 /media/cleUSBfi
Dernière modification par ludox (Le 04/06/2006, à 01:35)
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
#9 Le 04/06/2006, à 07:01
- cep_
Re : Script...
Voir le man pmount.
pmount monte un périférique à la volée en créant le point de montage dans media.
Voir aussi le fonctionnement de pmount avec plugdev, hal, etc.
Le périférique est identifié aussi à la volée, c'est à dire que si plusieurs clés (ou disques) sont montées à la suite les uns des autres, leur numérotation est adaptée.
Si le but de ton script est de monter une clé toujours dans le même point de montage, il faudra le coupler avec une règle udev.
#10 Le 04/06/2006, à 08:57
- jr95
Re : Script...
La page de man de test dit :
STRING1 = STRING2
the strings are equal
INTEGER1 -eq INTEGER2
INTEGER1 is equal to INTEGER2
Dans ton cas, il faut utiliser -eq dans les tests.
De plus, il faut laisser des espaces autour du signe = (et des autres opérateurs) dans les tests sur les chaines de caractères.
Hors ligne
#11 Le 04/06/2006, à 12:55
- ludox
Re : Script...
Voir le man pmount.
pmount monte un périférique à la volée en créant le point de montage dans media.
Voir aussi le fonctionnement de pmount avec plugdev, hal, etc.
Le périférique est identifié aussi à la volée, c'est à dire que si plusieurs clés (ou disques) sont montées à la suite les uns des autres, leur numérotation est adaptée.Si le but de ton script est de monter une clé toujours dans le même point de montage, il faudra le coupler avec une règle udev.
non, je m'en fous du nom du rep pour le montage.
Si Pmount crée le rep au montage tant mieux.
Dans /dev ou dans /media, itoo, pas de soucis.
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
#12 Le 04/06/2006, à 20:09
- ludox
Re : Script...
Bon, pour info et pour ceux que ca pourrait intéresser, voilà mon script final qui fonctionne.
j'ai pas compris grand chose à If...(surement une histoire de variable) et j'ai du mal à trouver un man là dessus.
Alors j'ai trouvé autre chose :
case esac
Pour l'adapter à votre config, il faut que vous repériez sur quel /dev/sd* s'installe votre clé ou lecteur de carte usb.
Par contre, j'ai besoin d'aide pour le rentrer dans le menu icewm.
Si je mets le script rien ne se passe car je suppose qu'icewm lance le script sans ouvrir de xterm.
#!/bin/sh
# pose la question et récupère la réponse
echo "Que veux tu monter/demonter Ludo ?
1 - Monteur clé USB
2 - Monter lecteur carte memoire XD
3 - Demonter"echo -n "Choix : "
read choix# agit selon la réponse
case $choix in
1)
pmount /dev/sda1 ;;2)
pmount /dev/sdc1 ;;3)
pumount /dev/sdc1
pumount /dev/sda1 ;;*) echo "Erreur, vous devez répondre 1,2 ou 3.";;
esac
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
#13 Le 04/06/2006, à 20:10
- ludox
Re : Script...
C'est bon j'ai trouvé, suffit de rajouter xterm devant le chemin du script.
A+++
LudoX
-----------------------------------------
-----------------------------------------
Hors ligne
Pages : 1