Jak nacist znak v shellu aniz bych musel mackat enter

Alexandr Malusek malusek na hroch.ujf.cas.cz
Čtvrtek Říjen 2 20:21:24 CEST 1997


toman na artax.karlin.mff.cuni.cz (Kamil Toman) writes:

> > chtel bych udelat shell skript ktery se ovlada takto:
> > vypise nejakou hlasku a ja zadam jedno pismeno (bez enter) a akce se 
> > provede.

> Ponekud znacny problem...

Ja bych to tolik nedramatizoval.Tato konference sice nema nahrazovat
ucebnici programovani, ale na druhou stranu je potreba veci uvadet na
pravou miru.

Pod Linuxem mi funguje nasledujici skript. Jeho nevyhodou je, ze pri
jeho preruseni muze zustat terminalova linka nastavena na "-icanon
-echo", coz neni idealni. Zkusil jsem to pustit i pod Solarisem 2.5.1,
ale tam program readchar nacita 4 znaky, nikoliv jen jeden, jako pod
Linuxem. Pro cteni sipek si to uz nejak upravite sam ...

################################################
#!/bin/sh

readkey () {
  stty -icanon -echo
  KEY=`./readchar`
  stty icanon echo
} 

KEY=x
while [ "$KEY" != "q" ]; do
  readkey
  echo "Stiskl jsi ... $KEY"
done
################################################

readchar.c:
#include <stdio.h>
int main() { putchar(getchar()); return 0; }

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR




Další informace o konferenci Linux