Keresés

Részletes keresés

locsemege Creative Commons License 2005-11-03 17:43:51 28
Megy, ha kijavítod, mert kissé bugos volt. Nézd ezt a változatot:

n=2
seq 20 |\
while read
do
echo "$REPLY"
i=1
while ((i++<n)) && read
do
:
done
done

Az egyik hiba az i kezdőértéke volt, a másik, hogy nem növeltem a ciklusváltozót, a harmadik, hogy a read-et kell a ciklusváltozó vizsgálata után rakni, különben akkor is eldobja a sort, amikor már nem kéne. A seq 20 |\ csak a teszteléshez kell, ez állítja elő a sorokat. Egyébként az egy érdekes probléma, hogy az echo által stdout-ra küldötteket miért nem szedi fel a belső while-ban lévő read, de ha ez mégis bekövetkezne, érdemes az echo kimenetét pl. a standard errorra küldeni:

echo "$REPLY" >/dev/stderr
A hozzászólás:
Kekkb Creative Commons License 2005-11-03 16:11:47 27
a $REPLY nélkül megy. köszi szépen
Előzmény:
locsemege Creative Commons License 2005-11-03 15:59:48 26
read && ((i<n)) helyett írhatod ezt is:

read && [ $i -lt $n ]

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!