[FreeBSD] 1 kerdes
Zahemszky Gabor
zgabor at CoDe.hu
1999. Okt. 25., H, 12:43:50 CEST
> > ps axuw | grep xxx
> >
> > parancsot, akkor maga a grep process 1x latszik 1x nem ??
>
> Az, hogy amikor a ps lefut, akkor a grep vagy letezik vagy nem. Errol
> ertekezik a ps manja is, miszerint semmi sem tokeletes, de legalabb is a ps
> csak addig helyes, ameddig figyelembe veszed, hogy egy pillanatnyi allapotot
> mutat, kiturva mindenfele kernel strukturabol.
>
> Magyarul: mikor ps lefutott, lehet, hogy a csovezetek masik vegen levo shell
> megy csak eppen forkol, hogy execelje a grepet. A stdout meg valami
> bufferkben csucsul, hogy elnyelje a grep.
Errol meg csak annyit, hogy amugy (shell) megvalositas is belejatszik, leven
(elmeletben) az okosabb shellek hatulrol elore inditjak a pipe-ban levo pro-
cesszeket, ezaltal elerve azt, hogy mire az adat megerkezik a csovon, addigra
a cso tulso vege fogadokepes allapotban legyen (olyasmi, mint a rendesen
megkonstrualt zoldhullam :-) - felteve, hogy egy korabbi fork-exec
hamarabb ad _ertekelheto_ - ugyismint futokepes - allapotot, mint egy kesobbi.
Persze ez nem magyarazza meg azt, hogy _ugyanabban_ a shellben miert
kulonbozo az eredmeny, de ezt nalam tanultabb kollega mar elmondta, lasd ott
fent.
ZGabor at CoDe HU
--
#!/bin/ksh
Z='21N16I25C25E30, 40M30E33E25T15U!' ;IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ ';set $Z ;for i { [[ $i = ? ]]&&print $i&&break;[[ $i = ??? ]]&&j=$i&&i=${i%?};typeset -i40 i=8#$i;print -n ${i#???};[[ "$j" = ??? ]]&&print -n "${j#??} "&&j=;typeset +i i;};IFS=' 0123456789 ';set $Z;X=;for i { [[ $i = , ]]&&i=2;[[ $i = ?? ]]||typeset -l i;X="$X $i";typeset +l i;};print "$X"
További információk a(z) BSD levelezőlistáról