promenne a slozene zavorky v shellu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Květen 4 22:33:44 CEST 2002


On 3 May 2002, David Rohleder wrote:

> > P=0 ; { P=1 ; echo ahoj ; echo nazdar ; } | mail -s "$P" adresat
> > 
> > a tak, aby P v subjektu bylo 1 a ne 0 a pritom, aby v tele mailu bylo
> > ahoj a nazdar.
[...]
> > Jsem z toho jelen. BTW: nechci pouzivat zadne trubky ani docasne
> > soubory.

No... '|' je take trubka... :)

> Byl tady dotaz co to ma vlastne delat: Je to skript, ktery pise na
> standardni vystup a mezitim si neco pocita v promennych. Ten
> standardni vystup je poslany do mailu a promenne by se mely objevit v
> subjektu. Treba jak to ma tripwire, v subjektu pocet zmenenych souboru
> a v tele celou zpravu.

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 }

(Vtip je pochopitelne v tom, ze docasne ulozeni dat provede prikaz tac.)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux