Nowe posty

Autor Wątek: jak spprawdzić czy zosatł wciśnięty TAB?  (Przeczytany 1717 razy)

P3kWl

  • Gość
jak spprawdzić czy zosatł wciśnięty TAB?
« dnia: 2016-01-22, 13:00:59 »
Witam
Tak jak w temacie.
chciałbym sprawdzić za pomocą funkcji read czy został wciśnięty przycisk TAB?
Jedyne co udało mi się znaleźć w tej kwestii to ten fragment kodu, który sprawdza czy zostały wciśnięte klawisze strzałek.
read -rsn3 -d '' PRESS
KEY=${PRESS:2}
case "$KEY" in
A) HY=$[HY-1] && clear ;; # Up
B) HY=$[HY+1] && clear ;; # Down
C) HX=$[HX+1] && clear ;; # Right
D) HX=$[HX-1] && clear ;; # Left
Jednak nie wiem jak on działa więc i nie mogę go przerobić.
Jak działa ten kod wyżej oraz jak go przerobić by dodatkowo sprawdzał inny klawisz taki jak TAB lub chociażby litere?

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Odp: jak spprawdzić czy zosatł wciśnięty TAB?
« Odpowiedź #1 dnia: 2016-01-22, 16:35:40 »
Hint:
IFS= read -rsn1 -d '' PRESS; if [ "$PRESS" == $'\t' ]; then echo "tab"; else echo "not tab"; fi

P3kWl

  • Gość
Odp: jak spprawdzić czy zosatł wciśnięty TAB?
« Odpowiedź #2 dnia: 2016-01-22, 17:24:14 »
 pro

P3kWl

  • Gość
Odp: jak spprawdzić czy zosatł wciśnięty TAB?
« Odpowiedź #3 dnia: 2016-01-24, 15:57:13 »
Witam
Ucięło mi posta :D
Próbowałem to połączyć i jedyne co mi przyszło do głowy to to:
read -rsn3 -d '' PRESS
KEY=${PRESS:2}
case "$KEY" in
A) HY=$[HY-1] && clear ;; # Up
B) HY=$[HY+1] && clear ;; # Down
C) HX=$[HX+1] && clear ;; # Right
D) HX=$[HX-1] && clear ;; # Left
*) IFS= read -rsn1 -d '' PRESS; if [ "$PRESS" == $'\t' ]; then echo "tab"; else clear && bufor_fun $HX $HY; fi
esac
Co o tym sądzicie?