Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: jak spprawdzić czy zosatł wciśnięty TAB?  (Przeczytany 1712 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?