Bonjour
J'ai fait un petit script bash :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| #!/bin/bash
drap=`grep "/media/h" /etc/mtab | wc -l`
Xdialog --msgbox "Vous avez $drap clef(s) deja disponbile(s)" 0 0
drap=0
if [ `grep "/media/h1" /etc/mtab | wc -l` == 1 ] ; then
Xdialog --yesno "Enleve t'on la clef /mnt/h1 ?" 0 0;\
case $? in
0)
umount /media/h1
if [ `grep "/media/h1" /etc/mtab | wc -l` == 1 ] ; then
Xdialog --msgbox "Probleme pour enlever /media/h1.\n Faire la commande suivante pour identifier un utilisateur eventuel de ce peripherique :\n /sbin/fuser -vm /media/h1" 0 0
else
Xdialog --msgbox "Vous pouvez enlever le peripherique /media/h1 sans probleme" 0 0
fi
;;
1)
Xdialog --msgbox "le peripherique /media/h1 est conserve" 0 0
;;
255)
Xdialog --msgbox "le peripherique /media/h1 est conserve" 0 0
;;
esac
else
if [ `grep "/media/h1" /etc/mtab | wc -l` == 0 ] ; then
if [ `ls -1 /dev/ | grep "sdc1" | wc -l` == 1 ] ; then
mount /media/h1
if [ `grep "/media/h1" /etc/mtab | wc -l` == 0 ] ; then
Xdialog --msgbox "erreur dans le montage de /media/h1" 0 0
else
Xdialog --msgbox "/media/h1 est maintenant disponible" 0 0
drap=1
fi
fi
fi
fi
if [ `grep "/media/h2" /etc/mtab | wc -l` == 1 ] ; then
Xdialog --yesno "Enleve t'on la clef /mnt/h2 ?" 0 0;\
case $? in
0)
umount /media/h1
if [ `grep "/media/h1" /etc/mtab | wc -l` == 1 ] ; then
Xdialog --msgbox "Probleme pour enlever /media/h2.\n Faire la commande suivante pour identifier un utilisateur eventuel de ce peripherique :\n /sbin/fuser -vm /media/h2" 0 0
else
Xdialog --msgbox "Vous pouvez enlever le peripherique /media/h2 sans probleme" 0 0
fi
;;
1)
Xdialog --msgbox "le peripherique /media/h2 est conserve" 0 0
;;
255)
Xdialog --msgbox "le peripherique /media/h2 est conserve" 0 0
;;
esac
else
if [ `grep "/media/h2" /etc/mtab | wc -l` == 0 ] ; then
if [ `ls -1 /dev/ | grep "sdd1" | wc -l` == 1 ] ; then
mount /media/h2
if [ `grep "/media/h2" /etc/mtab | wc -l` == 0 ] ; then
Xdialog --msgbox "erreur dans le montage de /media/h2" 0 0
else
Xdialog --msgbox "/media/h1 est maintenant disponible" 0 0
drap=1
fi
fi
fi
fi
if [ $drap == 0 ] ; then
drap=`grep "/media/h" /etc/mtab | wc -l`
Xdialog --msgbox "Aucune nouvelle clef rajoutee !\n $drap clef(s) actuellement disponible" 0 0
fi |
Il va avec les lignes suivantes du fstab :
1 2
| /dev/sdc1 /media/h1 vfat umask=0022,users,iocharset=utf8,sync,noauto,exec 0 0
/dev/sdd1 /media/h2 vfat umask=0022,users,iocharset=utf8,sync,noauto,exec 0 0 |
Je veux bien le donner à dvp.com pour un script d'exemple, mais j'aimerai pouvoir apporter quelques améliorations :
1)
1 2
| else
if [ `grep "/media/h2" /etc/mtab | wc -l` == 0 ] ; then |
Pourquoi si je mets elif, ça plante ?
2)
if [ `ls -1 /dev/ | grep "sdd1" | wc -l` == 1 ] ; then
Il doit y avoir plus simple pour dire que le périphérique existe !
3)
Comment faire pour activer l'affichage du Xdialog correctement avec les accents ?
Sans l'erreur suivante dès qu'on met un accent dans le texte et avec l'accent dans le texte :
(Xdialog:9443): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text()
Partager