Bonjour a tous,
j'ai un petit problème dans un script bash, je ne sais pas comment faire ?
Le but est de récupérer la liste des champs de ma table mysql et de l'afficher dans un menu en "dialogue" afin de sélectionner le champs à modifier.
j'ai tenté ceci :
Script
Code :
- ar=($(echo "DESCRIBE $nom_table" | mysql -p$pass_bd -u root $nom_bd | cut -f1));
- echo "Veuillez indiquer votre choix :"
- select ntit in ${ar[@]}
- do
- for l in $REPLY; # $REPLAY contains numbers
- do
- if [ $l -lt $cnt ]
- then
- ((var=$l-1));
- open ${ar[$var]};
- else
- exit
- fi
- done
- done
|
Résultat
Code :
- laurent@PC-ubuntu:~$ /home/laurent/bash/BDD-Mysql/bdd-table.sh
- Veuillez indiquer votre choix :
- 1) Field 12) type
- 2) id 13) macro
- 3) nom_module 14) emplacement
- 4) code_maison_unite 15) concerne
- 5) code_maison 16) puissance
- 6) code_unite 17) name_on
- 7) nom_commande_On 18) input_name_on
- 8) nom_commande_Off 19) name_off
- 9) variateur_plus 20) input_name_off
- 10) variateur_moins 21) nom_groupe
- 11) variateur_automatique
- #? 3
- /home/laurent/bash/BDD-Mysql/bdd-table.sh: ligne 226 : [: 3 : opérateur unaire attendu
- laurent@PC-ubuntu:~$
|
La ligne 226 est :
Comment puis je faire pour qu'il sache que lorsque l'utilisateur tape 3 cela correspond à nom_module ?
Afin d'envoyer "nom_module" dans la variable $valeur2
Ensuite je modifie le champs de ma table comme ceci.
Code :
- mysql_cmd="mysql -D $nom_bd -u$login_db -p$pass_bd"
- $mysql_cmd -e "UPDATE $nom_table SET colonne1='$valeur2' WHERE id=$id "
|
Aidez moi, svp .
Merci.