Portál AbcLinuxu, 17. května 2025 01:47
#!/bin/bash read READ if [ "$READ" == "^[[B" ] then echo "Bylo napsáno ^[[B" exit fi
- 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
read
.
Skús urobiť
read READ echo $READ | od -ca 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.
FOO=`$READ | od -c` echo "$FOO"díky
$ read -sn3 p; echo -n "$p"|od -An -c 033 [ A(bola stlacena sipka hore)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.