Portál AbcLinuxu, 13. května 2025 23:27

Dotaz: Proč echo vypisuje proměnnou jen u některých kláves?

4.11.2012 20:59 Jura
Proč echo vypisuje proměnnou jen u některých kláves?
Přečteno: 476×
Odpovědět | Admin
Proč echo vypisuje proměnnou jen u některých kláves?
#!/bin/bash
while true
do
 read INPUT
 echo $INPUT
done

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.11.2012 21:42 NN
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co ti konkretne nefunguje ?
4.11.2012 21:46 Jura
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Třeba klávesy F1 F2 F3.., šipky, CTRL, SHIFT.. Díky
4.11.2012 22:52 George O.
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Tak tyto klavesy asi logicky nejsou tisknutelne znaky. Urcite pujde nejak vytisknout jejich integer hodnota, nastesti tohle jsem v bashi nikdy nepotreboval, tak nevim, jak na to, ale google urcite poradi - dulezite je, ze uz vis, co mas hledat ;-)
4.11.2012 23:09 Jura
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Před pár léty tady každý "dement" co nevěděl ani co je echo naprogramoval s tímto fórem za měsíc celý web. Dneska nedostane ani pořádnou odpověď :-(
4.11.2012 23:21 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
To, o co se snažíte, je nesmysl. Příkaz read slouží k načítání textového vstupu po řádcích, ne k programování interaktivních aplikací reagujících na stisk kláves. K tomu druhému se navíc shell vůbec nehodí a urážením se a kopáním kolem sebe na tom nic nezměníte.
4.11.2012 23:44 Jura
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
To, o co se snažíte, je nesmysl. Příkaz read slouží k načítání textového vstupu po řádcích, ne k programování interaktivních aplikací reagujících na stisk kláves. K tomu druhému se navíc shell vůbec nehodí
Kdyby četl read po řádcích tak to tady neřeším, jenže read čte jen to co se mu zrovna číst chce, navíc vyžaduje potvrzení entrem pokud otřebujete načíst znaky o nějaké délce, pokud ani délku neznáte je read uplně k hovnu...

a urážením se a kopáním kolem sebe na tom nic nezměníte.
To není urážka ani kopání, to jsou smutná fakta.....
4.11.2012 23:50 l4m4
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
pokud otřebujete načíst znaky o nějaké délce, pokud ani délku neznáte je read uplně k hovnu
No hurá. Konečně se někam dostáváme.

read je na to úplně k hovnu.

Takto se skutečně interaktiní aplikace nepíší.
to jsou smutná fakta
s/smutná fakta/fakta/g

Pokud tedy nejde o to, že tu jsou teď každý týden dva tucty dotazů, jak se má v shellu udělat nějaká zvrácenost, ke které se shell naprosto nehodí. To je smutné.
4.11.2012 23:53 Jura
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Super, tak co poradíte místo read?
4.11.2012 23:58 l4m4
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Nepsat to v shellu a použít knihovnu (a) readline (b) ncurses, podle nároků.
5.11.2012 00:06 Jura
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
No přece k vůli takove blbosti jako je

read AAA

if [[ $AAA > 9 ]]
then
  read -n10 KEY
else
  read -n5 KEY
fi
nebudu tahat nějakou knihovnu. Vwřím, že existuje funkční způsob jak toho dosáhnout :(
5.11.2012 00:37 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Napište si nějakou primitivní aplikaci na pár řádků, třeba v C, která bude čekat na vstup klávesy a vypíše co bylo zmáčknuto. Tu pak použijte v shellu.

Můžete po Bashi chtít, aby vám uvařil omeletu, ale interní funkce na to asi nebude.
rADOn avatar 5.11.2012 12:30 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
No přece k vůli takove blbosti … nebudu tahat nějakou knihovnu. Vwřím, že existuje funkční způsob jak toho dosáhnout :(
No a to je odpověď na tvoji stížnost výše. Možná že "debilové" byli aspon ochotný poslechnout rady kterych se jim dostalo, zatímco teď se nám tu množí lidi kterým jejich neznalost nezabraňuje mít velmi vyhraněné názory na to jaké řešení jsou milostivě ochotni akceptovat. To se neber (moc) osobně, nejsi zdaleka první kdo mě tímhle naštval.

Ad tvůj problém – kódy které posílají klávesy závisí na terminálu. Tebe bude zajímat přinejmenším "linux" (virtuální konzole ve framebufferu) a "xterm" (většina grafických terminálů), ale mohlo by přijít i na rxvt, screen,… prostě rozumnej člověk se do toho nesere a použije něco co má databázi terminálů pořešenou a leze z toho nějak normalizovaný výstup – nejčastěji readline nebo slang. Celkem jednoduše se to dá zařídit přes readline (a potřebný počet větví v inputrc), ale to je určený k řádkovému vstupu, ne k psaní aplikací.

"2^24 comments ought to be enough for anyone" -- CmdrTaco
5.11.2012 06:26 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Kdyby četl read po řádcích tak to tady neřeším … navíc vyžaduje potvrzení entrem

Uvědomujete si, jak si sám odporujete? Zkuste se zbavit toho pocitu ublíženosti a raději se pokuste pochopit, jak fungují nástroje, které se snažíte používat.

5.11.2012 08:46 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Kdyby četl read po řádcích tak to tady neřeším, jenže read čte jen to co se mu zrovna číst chce, navíc vyžaduje potvrzení entrem pokud otřebujete načíst znaky o nějaké délce, pokud ani délku neznáte je read uplně k hovnu...
Co to?
read input čte dokud nepotvrdíte vstup, tedy neznámou délku, a čte to právě tehdy, kdy o to byl požádán a čte všechny znaky co mu zadáte, dokud enter-em nepotvrdíte vstup/řádek.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
5.11.2012 08:41 jekub
Rozbalit Rozbalit vše Re: Proc echo vypisuje promennou jen u nekterých kláves?
Časy jsou zlé, Kamile.
5.11.2012 16:19 Jura
Rozbalit Rozbalit vše Re: Proč echo vypisuje proměnnou jen u některých kláves?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdárně vyřešeno! Díky všem...
xxxs avatar 6.11.2012 21:13 xxxs | skóre: 25 | blog: vetvicky
Rozbalit Rozbalit vše Re: Proč echo vypisuje proměnnou jen u některých kláves?
ahoj, mozes popisat riesenie, nech ma poradna zmysel?

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.