promenne a slozene zavorky v shellu

Ing. Vlastimil Pospíchal vpospichal na tiscali.cz
Neděle Květen 5 12:02:59 CEST 2002


On Sun, May 05, 2002 at 01:31:09AM +0200, David Rohleder wrote:
> peak na argo.troja.mff.cuni.cz (Pavel Kankovsky) writes:
> 
> > To samozrejme z principu nejde bez docasneho ulozeni tela dopisu (at uz
> > bude docasne odlozen kdekoli, v souboru nebo v pameti), protoze subject je
> > soucast hlavicky a ta se obvykle pise rovnou na zacatek zpravy. I kdyz mne
> > napada jedno brutalni reseni, jak to udelat "ciste v shellu" bez
> > (explicitnich) docasnych souboru (ale potesi to maximalne skalni
> > priznivce neproceduralniho programovani):
> > 
> >   { P=0; echo ahoj; echo nazdar; P=1; echo "$P" } | tac | \
> >   { read P; tac | mail -s "$P" adresat }
> 
> Vidim, ze uz jsi druhy s tim tac, ale abych dvakrat prehazoval vystup,
> to je dost brutalni, asi to prece jenom ulozim do nejakeho docasneho
> souboru.
> 
> > (Vtip je pochopitelne v tom, ze docasne ulozeni dat provede prikaz
> > tac.)
> 
> a mam tomu prikazu tac verit? Uklada to opravdu do nejakeho tmp
> souboru? Radsi mu verit nebudu.
> David Rohleder						davro na ics.muni.cz

Zdroják tac jsem neviděl, ale sám bych to napsal jako zásobník, tedy bez
dočasného souboru. Pokud by však velikost souboru překročila určitou mez,
vyprázdnil bych zásobník do tmp a načítal znovu. Po ukončení vstupu nejprve
vyprázdnit zásobník na stdout a pak na stdout zkopírovat dočasné soubory
v obráceném pořadí.

V běžných situacích je tedy zbytečné, aby tac vytvářet dočasný soubor.

Bye Kit
-- 
Ing. Vlastimil Pospíchal
http://www.hoteldrnholec.cz


Další informace o konferenci Linux