[ LUGOS ] bedenje nad servisi in ukrepi

Metod Kozelj metod.kozelj na rzs-hm.si
Pet Okt 6 17:15:56 CEST 2000


Howdy!

On Fri, 6 Oct 2000, Andraz Hvalica wrote:

> if [ ! 'wget -T 15 -t 1 -q -O /dev/null cyclist.dyn.dhs.org:8080/' ];

Ti si tukaj malo pobrkal. Man test bo deloval, konkretno pa takole:

if ! wget -T 15 -t 1 -q -O /dev/null cyclist.dyn.dhs.org:8080/ ;

> Bom med vikendom prebral man bash v celoti in mi bo upam uspelo.

To nima veze z bashom, pac pa s test-om. [ je le alias za test.
Z bashom ima veze le 'if' in '!'. if preverja le izhodni status ukaza, ki
mu sledi (in se nadaljuje do podpicja). Primer:

if /bin/true; then echo "Prav"; fi

Tisti klicaj samo negira izhodni status programa. Torej je 

if ! /bin/true; ....

identicno

if /bin/false; ...

Ce vstavljas taksne konstrukte v skripte, je vcasih primerno ves output
ukaza zmetati v bit sink. Recimo:

if ps axuw 2>/dev/null | grep init >/dev/null; then echo "Init tece"; fi

Kot se v zgornjem primeru visi, lahko v if navedes cel konstrukt. Pri tem
'if' uposteva le exit kodo zadnjega ukaza, ki se je izvrsil.

Kot sem ze na zacetku omenil, je '[' alias za test (na starih HP-UX je bil
to dejansko en soft link v /usr/bin). Torej si lahko preberes se man za
program 'test', da izves, kaj vse zmore.

Peace!
  Mkx

---- perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'





Dodatne informacije o seznamu Starilist