Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

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