Portál AbcLinuxu, 12. května 2025 05:31

Dotaz: Bash - Jak zjisti jakou šipku uživatel stiskl

4.8.2012 01:12 MM
Bash - Jak zjisti jakou šipku uživatel stiskl
Přečteno: 302×
Odpovědět | Admin
Ahoj, jak bych mohl vytvořit podmínku abych zjistil jaká byla stisknuta šipka na klávesnici? Tohle se tváří že jako ano "^[[A" ale podmínka se nesplní.. Děkuji
echo "Zadejte něco: "
read CHOICE
[ "$CHOICE" == "^[[A" ] && echo "Stisknuta šipka nahoru!"
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.8.2012 09:51 Kit
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zase vynalézáš kolo? Zkus dialog.
4.8.2012 10:51 MM
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
Nechci dialog ani videt ;) Radeji mi porad ;) dik
4.8.2012 13:29 mkmm
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
Odpovědět | | Sbalit | Link | Blokovat | Admin
V dokumentacnim projektu linuxu je hned nekolik prikladu, treba nasledujici v Advanced Bash-Scripting Guide
#!/bin/bash
while true
do
  read -sn1 a
  test "$a" == `echo -en "\e"` || continue
  read -sn1 a
  test "$a" == "[" || continue
  read -sn1 a
  case "$a" in
    A)  echo "up";;
    B)  echo "down";;
    C)  echo "right";;
    D)  echo "left";;
  esac
done
4.8.2012 22:07 MM
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
Díky moc, a jak se jmenujou ty znaky z abecedy A B C D? Potřeboval bych ještě klávesu enter, ale nevím co hledat. Díky
5.8.2012 01:31 mkmm
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
Klavesa enter je \n nebo ctrl+m, ale takhle ji testovat nejde. V tom prikladu to nebude fungovat, ten je jenom pro sipky (stisknuti sipky generuje tri znaky: esc, [ a pismeno). Nevim, k cemu to chces, ale jestli je cilem predhodit uzivateli nejaky pripraveny text, ktery by si mohl editovat a potom odklepnout entrem, tak pouzij read -e -i "nejaky text" promenna a s tou promennou pak pracuj dal (treba eval, ale to neni moc bezpecne).
4.8.2012 13:52 mkmm
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli pises ve vimu, tak to jde jeste jednoduseji:
read -sn3 CHOICE
[ "$KEY" == "^[[A" ] && echo "Sipka nahoru"
kde znaky ^[ zadas tak, ze stisknes ctrl+v a esc (on je to vlastne jenom znak escape = ctrl+[, ale zobrazuje se jako dva znaky).
4.8.2012 13:55 mkmm
Rozbalit Rozbalit vše Re: Bash - Jak zjisti jakou šipku uživatel stiskl
chyba, misto $KEY ma byt $CHOICE

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.