Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/03/2013, à 23:48

Shcak

[Résolu] Entrée clavier dans un script

Bonjour à tous !

Je suis pas tout à fait sûr que ce que je cherche à faire soit possible dans un script bash, mais j'aimerais récupérer des entrées au clavier sans avoir à les valider d'un entrée ni à les afficher à l'écran.

Un truc de ce genre là :

  1 #!/bin/bash
  2 
  3 echo -ne "\033[7mchoix1\033[0m choix2\r"
  4 choix=1
  5 
  6 while true
  7 do
  8  #si appui sur gauche
  9   echo -ne "\033[7mchoix1\033[0m choix2\r"
 10   choix=1
 11 
 12  #si appui sur droite
 13   echo -ne "choix1 \033[7mchoix2\033[0m\r"
 14   choix=2
 15 
 16  #si appui sur entrée
 17   echo -ne "                      \rchoix $choix\n"
 18   break
 19 done

Mes recherche quand à une fonction permettant de récupérer les codes touches ont été infructueuses, voyez-vous un moyen de faire ça ?

Merci d'avance.

Dernière modification par Shcak (Le 10/03/2013, à 01:08)

Hors ligne

#2 Le 10/03/2013, à 00:47

nesthib

Re : [Résolu] Entrée clavier dans un script

Ça n'est pas une chose simple à faire en bash…
Pour avoir des caractères uniques (ex. lettres ascii) :

read -rsn1 -d '' TOUCHE
echo "La touche est \"${TOUCHE}\""

Pour les flèches c'est un peu plus compliqué car le code comprend plusieurs caractères (ex. gauche est « ^[[D »), il faut donc faire :

while true
do
  read -rsn3 -d '' TOUCHE
  case ${TOUCHE:2} in
    A) TOUCHE="↑" ;;
    B) TOUCHE="↓" ;;
    C) TOUCHE="→" ;;
    D) TOUCHE="←" ;;
  esac
  echo "La flèche est \"${TOUCHE}\""
done

Pour combiner les deux il te faudra faire quelques tests wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 10/03/2013, à 00:49

Haleth

Re : [Résolu] Entrée clavier dans un script

Ne lire qu'un char:

read -n 1 var

Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#4 Le 10/03/2013, à 01:07

Shcak

Re : [Résolu] Entrée clavier dans un script

Merci nesthib, cela répond tout à fait à ma question. smile

Au plaisir.

Hors ligne