Portál AbcLinuxu, 17. května 2025 01:47

Dotaz: Nefunguje podmínky v bash

27.9.2012 12:04 amather
Nefunguje podmínky v bash
Přečteno: 206×
Odpovědět | Admin
Ahoj, neví někdo proč se mi nevypíše echo když zadám stejné znaky jako vyhodnocuje podmínka? Děkuji
#!/bin/bash

read READ

if [ "$READ" == "^[[B" ]
then
   echo "Bylo napsáno ^[[B"
   exit
fi
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.9.2012 12:16 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Nefunguje podmínky v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podmienka funguje. Skôr tipujem, že to ty nenaťukáš správne tie štyri klávesy (a Enter).

Problém bude skôr v tom, že chceš vlastne robiť niečo úplne iné.
27.9.2012 12:22 amather
Rozbalit Rozbalit vše Re: Nefunguje podmínky v bash
- Spustím script
- Stisknu klávesu a vidím na obrazovce napsáno ^[[B
- Stisknu enter a když dám echo $READ, nic se nevypíše :(
Ještě jsem zjistil, že pokud naťukám znaky pojednom tak vše funguje jak má, tak jak to opravit? díky
27.9.2012 12:55 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Nefunguje podmínky v bash
To že na obrazovke vidíš ^[[B ešte neznamená, že také znaky boli poslané do toho read.

Skús urobiť
read READ
echo $READ  | od -c
a uvidíš, čo skutočne je v tej premennej. Pozri manuálovú stránku od aby si rozumel tomu čo to vypíše.

Aj tak to ale nevidím ako schodnú cestu, pretože za normálnych okolností je vstup z terminálu buffrovaný a ty sa asi pokúšaš reagovať na jednotlivé klávesy. Navrhujem, aby si sa pozrel na dialog.
27.9.2012 13:17 amather
Rozbalit Rozbalit vše Re: Nefunguje podmínky v bash
Velmi zajímave, škoda že to je v angličtině :(

ihmo šlo by dát to $READ | od -c do nějaké proměnné? zkoušel jsem to takto ale nejde to
FOO=`$READ | od -c`
echo "$FOO"
díky
27.9.2012 13:57 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Nefunguje podmínky v bash
FOO=`echo $READ | od -c`
echo "$FOO"
27.9.2012 18:36 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Nefunguje podmínky v bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
$ read -sn3 p; echo -n "$p"|od -An -c
033   [   A
(bola stlacena sipka hore)
If you hold a Unix shell up to your ear, you can you hear the C.

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.