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
- Case à cocher excel - Forum MacOS
3 réponses
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
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.
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.
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).