[ burtonium @ 04.06.2003. 10:30 ] @
Cao,

napisao sam neku bezveze skriptu, tek toliko, da vidim kako radi, ali ovo je nemoguce. Meni izgleda sasvim ok, mada mi javlja stalno neku gresku, a znam da je radila, pa sam valjda nesto bitno zeznuo, pa sad nikako da nadjem gresku :(

Zasto ja uvek kada je pogresna domena u pitanju dobijem sledeci error:
recimo #./dusan.sh kelfsfdst.si 213.161.0.10

error:
./dusan.sh: line 14: Desktop: command not found
i odgovor skripte:
DNS streznik 213.161.0.10 odgovarja: Domena kelfsfdst.si obstaja!

Svaki domen je pravi :(
Desktop mi je inace prvi dir, kojeg ispise prilikom LS :)

#Eto te dusan.sh!
#!/bin/sh
if `test -z $2`
then
if `nslookup -sil $1|grep "server"`
then
b="Domena $1 ne obstaja!"
elif `nslookup -sil $1|grep "connection"`
then
b="DNS streznik ni dosegljiv!"
else
b="Domena $1 obstaja!"
fi
else
if `nslookup -sil $1 server $2|grep "server"`
then
b="DNS streznik $2 odgovarja: Domena $1 ne obstaja!"
elif `nslookup -sil $1 server $2|grep "connection"`
then
b="DNS $2 streznik ni dosegljiv!"
else
b="DNS streznik $2 odgovarja: Domena $1 obstaja!"
fi
fi
[ tOwk @ 04.06.2003. 15:51 ] @
Kao prvo, kada šalješ više poruka o jednoj temi, šalji ih sve u jednu forumsku „temu“.

Zatim, kada šalješ malo veći kod, uvek ga uokviri sa [code] i [/code], i koristi uvlačenje pomoću razmaka (to poboljšava čitljovost, evo, meni je Emacs to ovako automatski sredio).

A treće, „if“ kontrolna naredba očekuje iza nje naredbu a ne string!!!!

Kada koristiš „backticks“ (`test -z $2`), zapravo dobijaš string dobijen sa standardnog izlaza te naredbe uz odsečen \n sa kraja.

Code:

#!/bin/sh
if test -z $2
    then
    if nslookup -sil $1|grep "server"
        then
    b="Domena $1 ne obstaja!"
    elif nslookup -sil $1|grep "connection"
        then
    b="DNS streznik ni dosegljiv!"
    else
    b="Domena $1 obstaja!"
    fi
else
    if nslookup -sil $1 server $2|grep "server"
        then
    b="DNS streznik $2 odgovarja: Domena $1 ne obstaja!"
    elif nslookup -sil $1 server $2|grep "connect"
        then
    b="DNS $2 streznik ni dosegljiv!"
    else
    b="DNS streznik $2 odgovarja: Domena $1 obstaja!"
    fi
fi
echo $b


I primer:
Citat:
./domeni.sh kelfsfdst.si 213.161.0.10
** server can't find kelfsfdst.si.: NXDOMAIN
DNS streznik 213.161.0.10 odgovarja: Domena kelfsfdst.si ne obstaja!


Uopšte, koristiš veoma ružnu tehniku.

Da sam na tvom mestu, ja bih koristio:
Code:

TMPVAR=`nslookup ... 2>/dev/null | grep nesto`
if [ -z $TMPVAR ]; then
  ...
fi

[ burtonium @ 04.06.2003. 15:55 ] @
Cao,

hvala na trudu i za odgovor. Primedbe su primljene i bice uvazene ubuduce ;)

Hvala jos jednom.