[linux] BASH postupne nacitanie suboru do premennej

Matus "fantomas" Uhlar uhlar na fantomas.sk
Pátek Červen 13 10:06:20 CEST 2003


On 13.06 09:57, Andrej Hosna wrote:
-> > a o co ti teda slo?
-> skus si  ...
-> #!/bin/bash
-> i=0
-> cat subor | while read l; do
-> 	i=$(($i+1))
-> done
-> echo $i 

uhlar na work% bash
$ i=0
$ while read l
> do
> i=$(($i+1))
> done
ahoj
vole
co to mas
$ echo $i
3

-> islo o to ze clovek vacsinou potrebuje nieco sofistikovanejsie ako cat
-> subor, uz len napriklad grep "moj string" subor a xces spocitat pocet
-> riadkov obsahujucich "moj string" (len mi prosim ta nepis grep "moj
-> string" | wc -l). Okrem toho totizto sa mozes rozhodnut nieco ine robit s
-> $l. Vsetko co som tym xcel povedat bolo ze niekedy sa konstrukcii for
-> nevyhnes.

vyhnem sa - pouzitim docasneho suboru. v pripade ak potrebujem daco robit s
jednotlivymi riadkami a mat ich pred tym spocitane, povazujem za ovela
vchodnejsie rieseni docasny subor ako naladovat komplet vstup do shellu
konstruksiou ``.

samozrejme sa to da, neviem aky je buffer v shelli (perl sa chvali ze by
podobne zalezitosti mal zvladnut v pohode), len to neodporucam.


-> > ale samozrejme ze nemusis! mozes to urobit cez while, presmerovat zo suboru
-> > alebo rurou z toho programu.
-> a prave ze (ved si to skus)

skusil som a neviem co sa snazis naznacit... co keby si to radsej napisal (a
mozno by sme prisli na to ci si robil chybu)?

-- 
Matus "fantomas" Uhlar, uhlar na fantomas.sk ; http://www.fantomas.sk/
Warning: I don't wish to receive e-mail advertising to this address.
Varovanie: Nezelam si na tuto adresu dostavat akukolvek reklamnu postu.
The only substitute for good manners is fast reflexes. 



Další informace o konferenci linux