Mettre une case dans une case
Fermé
xunil2003
Messages postés
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
-
Modifié par mamiemando le 11/06/2013 à 10:20
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 11 juin 2013 à 14:54
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 11 juin 2013 à 14:54
A voir également:
- Mettre une case dans une case
- Aller à la ligne dans une case excel - Guide
- Excel case choix multiple - Guide
- Comment cocher une case sans souris ✓ - Forum Windows
- Supprimer case à cocher excel ✓ - Forum Excel
- Comment cocher une case avec le clavier - Forum Clavier
3 réponses
mamiemando
Messages postés
33459
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
8 janvier 2025
7 813
11 juin 2013 à 10:27
11 juin 2013 à 10:27
Le programme est assez dur à lire en l'état car pas très bien écrit.
- Tu pourrais éviter d'écrire à chaque fois "mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" --default-character-set=utf8 -B -N -e" en définissant une variable par exemple nommée mysql.
- Le code n'est pas très bien indenté
- Des fonctions sont définies à l'intérieur du while
- Certaines variables qui ne semblent pas modifiées dans la boucle (date_us...) devraient être initialisée en dehors de la boucle.
- Tu pourrais définir des constantes pour les séquences héxadécimales en début de programme.
Ensuite pour qu'on puisse comprendre ce qui cloche, vu qu'on ne peut pas reproduire ce qui se passe n'ayant pas la base mysql que tu utilises, il faudrait nous dire quelle instruction plante.
Par exemple supposons que ce soit une requête sql qui ne donne pas le résultat escompté, tu devrait tenter de la lancer dans mysql, vérifier qu'elle retourne ce qu'il faut, puis l'injecter dans ton script, etc. Bref il faut y aller progressivement :-)
Bonne chance
- Tu pourrais éviter d'écrire à chaque fois "mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" --default-character-set=utf8 -B -N -e" en définissant une variable par exemple nommée mysql.
- Le code n'est pas très bien indenté
- Des fonctions sont définies à l'intérieur du while
- Certaines variables qui ne semblent pas modifiées dans la boucle (date_us...) devraient être initialisée en dehors de la boucle.
- Tu pourrais définir des constantes pour les séquences héxadécimales en début de programme.
Ensuite pour qu'on puisse comprendre ce qui cloche, vu qu'on ne peut pas reproduire ce qui se passe n'ayant pas la base mysql que tu utilises, il faudrait nous dire quelle instruction plante.
Par exemple supposons que ce soit une requête sql qui ne donne pas le résultat escompté, tu devrait tenter de la lancer dans mysql, vérifier qu'elle retourne ce qu'il faut, puis l'injecter dans ton script, etc. Bref il faut y aller progressivement :-)
Bonne chance
Utilisateur anonyme
11 juin 2013 à 13:03
11 juin 2013 à 13:03
salut,
Comme l'a très justement fait remarquer mamiemando, les fonctions devraient être définies en dehors de la boucle while.
Elles sont toutes quasiment identiques, il pourrait n'y en avoir qu'une qui prendrait en argument le motif de recherche (0%, e1, e2).
De plus, certains case se servent d'exactement la même fonction.
Pourquoi les exécutes-tu dans une substitution de commandes ?
Une fois définies, les fonctions sont des commandes comme les autres.
Comme l'a très justement fait remarquer mamiemando, les fonctions devraient être définies en dehors de la boucle while.
Elles sont toutes quasiment identiques, il pourrait n'y en avoir qu'une qui prendrait en argument le motif de recherche (0%, e1, e2).
De plus, certains case se servent d'exactement la même fonction.
Pourquoi les exécutes-tu dans une substitution de commandes ?
Une fois définies, les fonctions sont des commandes comme les autres.
xunil2003
Messages postés
766
Date d'inscription
mercredi 17 novembre 2004
Statut
Membre
Dernière intervention
29 septembre 2024
14
Modifié par xunil2003 le 11/06/2013 à 15:01
Modifié par xunil2003 le 11/06/2013 à 15:01
Bonjour,
Merci mamiemando pour votre réponse.
C'est un problème que je n'arrive pas a expliquer
Mais j'ai une question :
Est il possible de mettre une variable dans une case ?
Résultat
Merci.
Merci mamiemando pour votre réponse.
C'est un problème que je n'arrive pas a expliquer
Mais j'ai une question :
Est il possible de mettre une variable dans une case ?
*5D\ 5A\ 02\ 00\ 16\ ) echo "E1 -----> Radio reveil" cmu=e1 ;; *5D\ 5A\ 02\ 01\ 12\ ) echo "On" # -----> Radio reveil action=on ;; *5D\ 5A\ 02\ 01\ 13\ ) echo "Off" # -----> Radio reveil action=off ;; $cmu\ $action ) echo "Résultat : $cmu $action" echo "$cmu $action -----> Radio reveil (test)" action=on #------- FONCTION REQUETE TABLE 1 CONFIG ------ #Requete chemin du fichier ordre domotique sql1(){ mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" \ --default-character-set=utf8 -B -N -e "SELECT chemin_script_bash_x10 FROM config WHERE id LIKE '0%'" } #Requete nom du fichier de l'ordre domotique sql2(){ mysql -h "$hote_db" -D "$nom_bd" -u "$login_db" -p"$pass_bd" \ --default-character-set=utf8 -B -N -e "SELECT fichier_$action FROM bash WHERE cmu LIKE '$cmu'" } $(sql1)$(sql2) ;;
Résultat
E1 -----> Radio reveil Off
Merci.
11 juin 2013 à 12:50
Je ne suis pas du même avis. Les commandes "complexes" devraient être "stockées" dans une fonction (l'utilisation de variables peut poser des problèmes de découpage en mots).