BASH Script : Gestion de touche
Résolu
Gimly86
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
Gimly86 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
Gimly86 Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
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
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Bingo bash free - Télécharger - Divers Jeux
- Bash addition ✓ - Forum Shell
4 réponses
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 :)
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 :)
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 }
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 ?