BASH Script : Gestion de touche
Résolu/Fermé
Gimly86
Messages postés
17
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
25 août 2011
-
29 déc. 2008 à 17:39
Gimly86 Messages postés 17 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 25 août 2011 - 30 déc. 2008 à 13:34
Gimly86 Messages postés 17 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 25 août 2011 - 30 déc. 2008 à 13:34
Bonjour tout le monde,
Voila, j'ai une petite question, je script en bash depuis un petit moment maintenant et je voudrais savoir s'il est possible de gérer un ensemble de touche dans un script bash.
exemple : en faisant un "ctrl+e" il revienne à une fonction de mon script comme un menu.
Est-ce possible ou non ? Je ne trouve rien sur le net donc je suppose que non, mais on sait jamais s'il y a un expert qui passe par la ... ^^
Merci bien :)
Voila, j'ai une petite question, je script en bash depuis un petit moment maintenant et je voudrais savoir s'il est possible de gérer un ensemble de touche dans un script bash.
exemple : en faisant un "ctrl+e" il revienne à une fonction de mon script comme un menu.
Est-ce possible ou non ? Je ne trouve rien sur le net donc je suppose que non, mais on sait jamais s'il y a un expert qui passe par la ... ^^
Merci bien :)
A voir également:
- BASH Script : Gestion de touche
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Bingo bash free - Télécharger - Divers Jeux
- Script cmd - Guide
4 réponses
Gimly86
Messages postés
17
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
25 août 2011
30 déc. 2008 à 10:23
30 déc. 2008 à 10:23
Un petit up.
J'ai aussi un autre souci avec un if voici le code :
J'ai modifié volontairement les IP's :). Seulement en résultat cette fonction me sort toujours Autre Réseau.
Si quelqu'un à une idée s'il vous plait ?
Merci :)
J'ai aussi un autre souci avec un if voici le code :
ip() { if [ -z $ippub = '']; then ippub=$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1); fi stsecondin1='81.252.x.x21' stsecondin2='81.252.x.x25' saulge1='81.252.x.x73' saulge2='81.252.x.x69' saulge3='81.252.x.x65' if [ '$ippub' = '$stsecondin1' ] || [ '$ippub' = '$stsecondin2' ] then echo "St Secondin" else if [ '$ippub' = '$saulge1' ] || [ '$ippub' = '$saulge2' ] || [ '$ippub' = '$saulge3' ] then echo "Saulgé" else echo "Autre réseau" fi fi }
J'ai modifié volontairement les IP's :). Seulement en résultat cette fonction me sort toujours Autre Réseau.
Si quelqu'un à une idée s'il vous plait ?
Merci :)
Gimly86
Messages postés
17
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
25 août 2011
30 déc. 2008 à 11:28
30 déc. 2008 à 11:28
Merci pour ta réponse, c'est vrai que je n'ai pas pensé à case.
Seulement maintenant j'ai un souci avec ce code :
Bon seulement il me sort toujours Autre réseau, J'ai vérifié tout de même l'ip que je récupérer par le test dyndns et elle est bien correct. Si quelqu'un a une idée ?
Merci :)
Seulement maintenant j'ai un souci avec ce code :
if [ -z $ippub = ""]; then ippub=$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1); fi case $ippub in '81.252.x.x21') echo "St Secondin" ;; '81.252.x.x25') echo "St Secondin" ;; '81.252.x.x73') echo "Saulgé" ;; '81.252.x.x69') echo "Saulgé" ;; '81.252.x.x65') echo "Saulgé" ;; *) echo "Autre Réseau" ;; esac
Bon seulement il me sort toujours Autre réseau, J'ai vérifié tout de même l'ip que je récupérer par le test dyndns et elle est bien correct. Si quelqu'un a une idée ?
Merci :)
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
30 déc. 2008 à 11:45
30 déc. 2008 à 11:45
Le résultat de "$ippub" est-il sensé contenir une adresse IP entourée de quotes simples ?
Si la réponse est non, alors enlèves les quotes simples de tes adresses dans le "case...esac", et enlèves aussi les espaces en début du moins en ce qui concerne les IP ;-))
Si la réponse est non, alors enlèves les quotes simples de tes adresses dans le "case...esac", et enlèves aussi les espaces en début du moins en ce qui concerne les IP ;-))
Gimly86
Messages postés
17
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
25 août 2011
30 déc. 2008 à 11:55
30 déc. 2008 à 11:55
Non en effet l'ip n'est pas quoté (oui oui de verbe quoter :D), mais j'ai tout de même fait ce que tu as dit jipicy. Seulement le problème persiste, et l'ip récuperer est bien la bonne celle de la valeur 1 de mon case :
ip() { if [ -z $ippub = ""]; then ippub=$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1); fi case $ippub in 81.252.x.x21) echo "St Secondin" ;; 81.252.x.x25) echo "St Secondin" ;; 81.252.x.x73) echo "Saulgé" ;; 81.252.x.x69) echo "Saulgé" ;; 81.252.x.x65) echo "Saulgé" ;; *) echo "Autre Réseau" ;; esac }
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
30 déc. 2008 à 12:22
30 déc. 2008 à 12:22
Ben je ne sais que te dire, chez moi ça marche bien ;-\
Juste un truc, il faut un espace avant le crochet fermant de "if [ -z $ippub = ""]" :
Juste un truc, il faut un espace avant le crochet fermant de "if [ -z $ippub = ""]" :
if [ -z $ippub = "" ];-))
Gimly86
Messages postés
17
Date d'inscription
mercredi 5 novembre 2008
Statut
Membre
Dernière intervention
25 août 2011
30 déc. 2008 à 13:34
30 déc. 2008 à 13:34
Bon, bah c'est pas grave. Merci quand même :)
30 déc. 2008 à 10:44
Il faut des quotes doubles (et non pas des simples) autour des variables dans tes tests de condition (et en règle générale).
Une fonction "case $var in ... esac" ne serait-elle pas plus adaptée à ton cas ?