[linux] BASH postupne nacitanie suboru do premennej

Matus fantomas Uhlar uhlar na fantomas.sk
Pátek Červen 13 09:45:15 CEST 2003


zdravim,

VOBEC som tvoj mail nepochopil...

On 13.06 08:29, Andrej Hosna wrote:
-> > pocet=0
-> > while read riadok; do
-> >   pocet=$((pocet+1))
-> > done <subor;
-> bude fungovat ale nie o to mi islo ...

a o co ti teda slo?

-> cat subor | while ... fungovat nebude

co nebude fungovat? je to sice !@#$%^&* konstrukcia ale fungovat bude.
chces poratat riadky cez `cat subor`? Ako?

-> Je to jasne ze koli forkovaniu subshellu, len na to som xcel poukazat. 

forkovaniu subshellu kde? v cat|while sa forkuje shell aby execol cat, ale
co kvoli tomu nebude fungovat?

-> vseobecnosti sa viac oplati ten for pretoze drvivou vacsinou clovek
-> spracuva uz vystup nejakeho programu a vtedy (ak nexces pouzit temporary
-> subor) musis

ale samozrejme ze nemusis! mozes to urobit cez while, presmerovat zo suboru
alebo rurou z toho programu.

a NIC sa zbytocne forkovat nebude (ak ten program nebude 'cat subor').

-> pajpovat bude cez "| while read"(v pripade ze nepotrebujes robit nad nejakou 
-> premennou) ,alebo nacitat do premennej a precyklovat cez for.

jedine co bude v drvivej vacsine pripadov naozaj zbytocne neeefektivnem bude
cyklus for premenna in `program` a preto by sa tomu mal kazdy vyvarovat ak
nema naozaj dobry dovod tuto konstrukciu pouzit.

-- 
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.
I intend to live forever - so far so good. 



Další informace o konferenci linux