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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [shell] Besoin d'aide pour la réalisation d'un menu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[shell] Besoin d'aide pour la réalisation d'un menu

n°593989
ecliptux
Oui. Enfin si peut-être.
Posté le 21-11-2004 à 14:24:10  profilanswer
 

Je souhaite me faire un script pour gérer mes sauvegardes tar.gz et pour cela, je me suis lancé dans al conception d'un menu avec plusieurs choix.
Malheureusement je débute et j'ai quelques soucis que j'ai grand mal à résoudre.
Voici le script (il n'y a pas encore le code de la sauvegarde proprement dite) :

Code :
  1. #!/bin/bash
  2. function aide()
  3. {
  4.    echo ""
  5.    echo "Sauvegarde Spheerys"
  6.    echo "==================="
  7.    echo ""
  8.    echo " 1 - simple compression des donnees dans /sauvelinux"
  9.    echo "     a) sauvegarde manuelle de evolution.tar.bz2"
  10.    echo "     b) sauvegarde manuelle de ecliptux.tar.bz2"
  11.    echo "     c) sauvegarde manuelle de etc.tar.bz2"
  12.    echo "     d) sauvegarde manuelle de root.tar.bz2"
  13.    echo " 2 - compression des donnees dans /sauvelinux puis delocalisation /mnt/sauvelinux"
  14.    echo " 3 - realisation d'une iso dans /sauvelinux"
  15.    echo " 4 - gravage de l'iso dans /media/cdrom0"
  16.    echo " q - quitter"
  17.    echo ""
  18.    echo "Choix : "
  19.    read reponse
  20. }
  21. if [ $# > 0 ]
  22. then
  23.    reponse=$1
  24. fi
  25. while [ "$reponse" -ne "q" ]
  26. do
  27.      if [ "$reponse" -ne "1"
  28. && "$reponse" -ne "2"
  29. && "$reponse" -ne "3"
  30. && "$reponse" -ne "4"
  31. && "$reponse" -ne "a"
  32. && "$reponse" -ne "b"
  33. && "$reponse" -ne "c"
  34. && "$reponse" -ne "d"
  35. && "$reponse" -ne "q" ]
  36.    then
  37.       aide
  38.    fi
  39.    case $reponse in
  40.      1) echo "Choix 1 lance"
  41.         reponse=q
  42. ;;
  43.      2) echo "Choix 2 lance"
  44.         reponse=q
  45. ;;
  46.      3) echo "Choix 3 lance"
  47. reponse=q
  48. ;;
  49.      4) echo "Choix 4 lance"
  50. reponse=q
  51. ;;
  52.      a) echo "Choix a lance"
  53. reponse=q
  54. ;;
  55.      b) echo "Choix b lance"
  56. reponse=q
  57. ;;
  58.      c) echo "Choix c lance"
  59. reponse=q
  60. ;;
  61.      d) echo "Choix d lance"
  62. reponse=q
  63. ;;
  64.      q) reponse=q
  65. ;;
  66.    esac
  67. done


Seulement, qd je lance le script, voilà l'erreur :

Citation :

[ecliptux]@[~/Systeme/Scripts]$ savelinux
/home/ecliptux/bin/savelinux: line 34: syntax error near unexpected token `&&'
/home/ecliptux/bin/savelinux: line 34: `        && "$reponse" -ne "2" '


J'ai lu pas mal de doc sur les boucles IF etc.... mais j'ai du mal à trouver la syntaxe exacte dans le cas de tests multiples. Mais peut-être y a t'il une manière plus élégante de coder cette étape :/


Message édité par ecliptux le 21-11-2004 à 14:52:11

---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
mood
Publicité
Posté le 21-11-2004 à 14:24:10  profilanswer
 

n°594012
Zaib3k
Posté le 21-11-2004 à 15:14:29  profilanswer
 

c'est -a le ET dans les [ ]
 
[ bidule -ne machin -a chose -gt truc ] par exemple
 
regarde de la doc sur select aussi, c'est sympa pour les menus


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°594101
ecliptux
Oui. Enfin si peut-être.
Posté le 21-11-2004 à 17:22:30  profilanswer
 

Merci Zaib3k :)
j'ai remplacé les && par des -a mais je me retrouve de nouveau sur un os au niveau su case qd je lance le script :

Citation :

'home/ecliptux/bin/savelinux: line 46: syntax error near unexpected token `in
'home/ecliptux/bin/savelinux: line 46: `   case $reponse in


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
n°594107
Zaib3k
Posté le 21-11-2004 à 17:30:00  profilanswer
 

regarde le select, c'est vraiment plus cool :)
http://www.tldp.org/LDP/abs/html/testbranch.html
 
j'essairais peut etre de voir ca plus tard sinon ;)


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°594113
Zaib3k
Posté le 21-11-2004 à 17:41:52  profilanswer
 

c'est mal foutu ton truc. reprend le de 0 en le réflechissant un peu. un fois quelques trucs corrigés, ca boucle ;)


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°594121
Zaib3k
Posté le 21-11-2004 à 17:56:03  profilanswer
 

Code :
  1. #!/bin/bash
  2. PS3="choix ? "
  3. select reponse in "sauvegarde manuelle de evolution.tar.bz2" "sauvegarde manuelle de ecliptux.tar.bz2" "sauvegarde manuelle de etc.tar.bz2" "quitter"
  4. do
  5. case $REPLY in
  6.  4)
  7.   exit;;
  8.  *)
  9.   echo $reponse;;
  10. esac
  11. done


 
c'est pas plus simple un truc ds le genre ?


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°594637
ecliptux
Oui. Enfin si peut-être.
Posté le 22-11-2004 à 20:10:10  profilanswer
 

Merci pour tes conseils Zaib3k :)
Je n'ai pas trop de temps de m'y replonger là, mais je vais étudier tes pistes prochainement :)


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.
n°595342
ecliptux
Oui. Enfin si peut-être.
Posté le 24-11-2004 à 11:19:39  profilanswer
 

Zaib3k a écrit :

regarde le select, c'est vraiment plus cool :)
http://www.tldp.org/LDP/abs/html/testbranch.html


Bon j'ai utilisé un des script de ce site et ça fonctionne :)
Il reste bien sûr à le fignoler mais là je n'ai pas trop le temps.
En tout cas merci :)

#!/bin/bash
# tiré du site http://www.tldp.org/LDP/abs/html/testbranch.html
 
# Crude address database
 
   echo "==================="
   echo "Sauvegarde Spheerys"
   echo "==================="
   echo ""
   echo " 1 - simple compression des donnees dans /sauvelinux"
   echo "     a) sauvegarde manuelle de evolution.tar.bz2"
   echo "     b) sauvegarde manuelle de ecliptux.tar.bz2"
   echo "     c) sauvegarde manuelle de etc.tar.bz2"
   echo "     d) sauvegarde manuelle de root.tar.bz2"
   echo " 2 - compression dans /sauvelinux + delocalisation /mnt/sauvelinux"
   echo " 3 - delocalisation de la sauvegarde dans /mnt/sauvelinux"
   echo " 4 - realisation d'une iso dans /sauvelinux"
   echo " 5 - gravage de l'iso dans /media/cdrom0"
   echo " q - quitter"
   echo ""
   echo "Choix : "
read reponse
 
case "$reponse" in
# Note variable is quoted.
 
  "1" )  
  echo "Choix 1"
  ;;
 
  "2" )  
  echo "Choix 2"
  ;;
 
  "3" )  
  echo "Choix 3"
  ;;
 
  "4" )  
  echo "Choix 4"
  ;;
 
  "5" )  
  echo "Choix 4"
  ;;
 
  "q" | "Q" )  
  echo "Au revoir...."
  ;;
 
  "a" )  
  echo "Choix a"
  ;;
 
  "b" )  
  echo "Choix b"
  ;;
 
  "c" )  
  echo "Choix c"
  ;;
 
  "d" )  
  echo "Choix d"
  ;;
 
    * )
   # Default option.    
   # Empty input (hitting RETURN) fits here, too.
   echo
   echo "mauvais choix"
  ;;
 
esac
echo
 
#  Exercise:
#  --------
#  Change the script so it accepts continuous input,
#+ instead of terminating after displaying just one address.
 
exit 0


---------------
Il existe mille manières d'agir, et une seule de ne rien faire.

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

  [shell] Besoin d'aide pour la réalisation d'un menu

 

Sujets relatifs
Je suis perdu et jaurai besoin d'une explicationaide DV Thomson VMD2
envoyer un EOF à mon shell....[resolu] process inquietant! besoin d'info
DNS Correspondant à ma besoin[KDE] où se trouve le menu KDE (résolu)
commande pour tester un parametre en prog shell[shell] ls | grep xxx > vim
Aide mandrak 10.0 configuration internetlancer un shell sous interface graphique
Plus de sujets relatifs à : [shell] Besoin d'aide pour la réalisation d'un menu


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