if / fi ???

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
linux-tux
Beiträge: 400
Registriert: 07.04.2004 08:09:13
Wohnort: Klagenfurt
Kontaktdaten:

if / fi ???

Beitrag von linux-tux » 21.04.2004 10:21:38

hallo,


ich möchte ein programm schreiben, dass über prüft ob die netzwerkkarte aktiviert ist oder nicht. wenn sie aktiviert ist soll er "eth0 is up" auf den screen schreiben und wenn sie deaktiviert ost, soll er "eth0 is down" auf den screen schreiben.

funktioniert das so??
if [ "eth0" != "up" ];
then
echo "eth0 is down"
else
echo "eth0 is up"
fi


mfg

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 21.04.2004 10:45:50

Du kannst den aktuellen Status der Netzwerkinterfaces aus der Datei /etc/network/ifstatus auslesen.

Code: Alles auswählen

/#cat /etc/network/ifstate
lo=lo
eth0=eth0
/#ifdown lo
/# cat /etc/network/ifstate
eth0=eth0
/#
Ich habe das mal in ein Skript geschustert ;)

Code: Alles auswählen

#!/bin/sh

bla=`cat /etc/network/ifstate`

echo $bla

for i in $bla; do
echo "--> " $i
if [ "$i" == "eth0=eth0" ];then
    echo "eth0 is up"
fi
done
Dann bekomme ich die Ausgabe:
quick and dirty hat geschrieben:(~): ./test.sh
eth0=eth0 lo=lo
--> eth0=eth0
eth0 is up
--> lo=lo
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Benutzeravatar
linux-tux
Beiträge: 400
Registriert: 07.04.2004 08:09:13
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von linux-tux » 21.04.2004 10:58:39

ok danke!!

wie würde da dan das aussehen mit der if frage????
/#cat /etc/network/ifstate
lo=lo
eth0=eth0
/#ifdown lo
/# cat /etc/network/ifstate
eth0=eth0
/#

mfg

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 21.04.2004 11:45:10

Ich habe meinen letzen Posting nochmal ein kleines Shellskript angefuegt da steht es drin.

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Benutzeravatar
linux-tux
Beiträge: 400
Registriert: 07.04.2004 08:09:13
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von linux-tux » 21.04.2004 13:59:02

danke das funzt auch außer dass er immer schreibt das die eth0 up is egal ob si up is oda down.
habe folgendes schon probiert:

Code: Alles auswählen

#!/bin/sh

bla=`cat /etc/network/ifstate`

echo $bla

for i in $bla; do
        echo "--> " $i
if [ "$i" == "eth0=eth0" ];then
        echo "eth0 is up"
else
        echo "eth0 is down"
fi
done
und ich habe das echo "eth0 is down" auch schon in eine eigene if-schleife getan!

und das funzt nicht


mfg

Benutzeravatar
pil
Beiträge: 629
Registriert: 30.04.2002 15:47:27

Beitrag von pil » 21.04.2004 14:56:17

Mein bescheidener Versuch:

if [ "`/sbin/ifconfig | grep eth0`" ] ; then
echo is up
else
echo is down
fi
~

Benutzeravatar
linux-tux
Beiträge: 400
Registriert: 07.04.2004 08:09:13
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von linux-tux » 21.04.2004 15:38:32

ok danke!!!


jo deis funzt supa!!!


danke!!!


mfg

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 22.04.2004 14:29:10

...und wenn Du vielleicht auch noch wissen willst, ob die Netzwerkkarte auch einen Link hat (sprich, ein Kabel dransteckt und das andere Ende in einem Hub/Switch), solltest Du mal das Tool "mii-tool" ausprobieren.

Gruss, mistersixt.

Benutzeravatar
linux-tux
Beiträge: 400
Registriert: 07.04.2004 08:09:13
Wohnort: Klagenfurt
Kontaktdaten:

Beitrag von linux-tux » 22.04.2004 17:20:29

ok danke! werde ich mal ausprobieren!!!

mfg

Antworten