bash read a if

Matus UHLAR - fantomas uhlar na fantomas.sk
Čtvrtek Březen 24 14:03:20 CET 2005


kocek.kvetoslav na vestizol.cz wrote:
> mam v bashi takovouto konstrukci:
> 
> read
> 
> if [ $REPLY == "a" ] || [ $REPLY == "A" ]; then
> echo $REPLY
> fi
> 
> pokud na vyzvu read zadam a, A, nebo cokoliv jineho dela to,
> co ma. Ale pokud nezadam nic, vyplivne na me:
> 
> line 20: [: ==: unary operator expected
> line 20: [: ==: unary operator expected
> 
> Cim to? Jak 100hoven?

volate program test (linka z nazvom [), dokonca dvakrat, pricom program
test na porovnanie pouziva = a nie ==.

pouzite konstrukciu:

if [ "$REPLY" = A -o "$REPLY" = a ]; then

A ani a nemusia byt v uvodzovkach, su to obycajne parametre programu test.
zato $REPLY by v uvodzovkach byt malo, ked bude prazdne nech sa rozvinie
na prazdny parameter, inac by test papuloval, konstrukciu

= A -o = a

totizto nevie spracovat.

Dalsia moznost je pouzit bashovsky interny tester [[ ... ]]
vid man bash.
-- 
Matus UHLAR - fantomas, uhlar na fantomas.sk ; http://www.fantomas.sk/
Warning: I wish NOT to receive e-mail advertising to this address.
Varovanie: na tuto adresu chcem NEDOSTAVAT akukolvek reklamnu postu.
A day without sunshine is like, night.


Další informace o konferenci Linux