Archiv verlassen und diese Seite im Standarddesign anzeigen : mit if anweisung überprüfen ob
Linuxneuling
29.10.2004, 21:46
Hallo!
Ich möchte dieses WE intensiv mit Shell Sripte beschäftigen. Im Moment fällt mir nichts ein wie ich mit der IF Anweisung machen kann ob die eine Verzeichnis von einem entfernten Server gemountet ist.
Z. B
if mount /remoteserver
then tar cvf /dev/tape /remoteserver
done
oder wie kann ich mit der if anweisung pingen, wenn eine Antwort kommt dann gehts weiter...
Sorry dass ich irrtümlich im C++ Bereich gepostet habe.
@Admin bitte diesen Beitrag verschieben...
wenn ich wissen will, ob (bzw. wie oft) /dev/hda1 gemountet ist frage ich
cat /etc/mtab | grep -c /dev/hda1
wenn es (ein mal) gemountet ist bekomme ich eine 1, wenn nicht, eine null.
hilft dir das weiter?
gruss, fossy.
Sorry dass ich irrtümlich im C++ Bereich gepostet habe.
@Admin bitte diesen Beitrag verschieben...
Erledigt! ;)
oder wie kann ich mit der if anweisung pingen
Prinzipiell solltest Du den Exit-Code eines Programms auswerten, d.h. Du machst z.B. ein
ping -q -W 5 -c 3 192.168.0.1 >/dev/null
if [ $? -eq "0"]
then
echo "Server erreicht"
else
echo "Verbindung fehlgeschlagen"
fi
Also mit $? frägst den Exit Code des zuvor ausgeführten Programmes ab. Die Werte die er annehmen kann, ist in der entsprechenden man-page des Befehls zu entnehmen. Exit-Code "0" steht immer für "Erfolgreich".
if [ $? -eq "0"]...
Vereinfachend kannste das
-eq "0"
auch weglassen. Ist sonst doppelt-gemoppelt :)
Gruss, Phorus
hier noch mal ne version mit leichter süss-sauer-note (so ganz mit ohne if):
ping -q -W 5 -c 3 web.de >/dev/null 2>&1 && (echo "ist da") || (echo "nicht da")
fossy.
hier noch mal ne version mit leichter süss-sauer-note (so ganz mit ohne if):
ping -q -W 5 -c 3 web.de >/dev/null 2>&1 && (echo "ist da") || (echo "nicht da")
fossy.
Spielverderber ;)
Hehe :] auch gut.
Allerdings wollte er ja wissen wie er mit IF was macht, nicht wie er einzeiler zusammennagelt.
Oder so:
if ping -c 4 www.google.de &> /dev/null
then
echo "Google ist da"
else
echo "Google ist tot"
fi
@ Cybermarc
Was hast du fuer ein Ping-Programm, mein ping kennt den Parameter -W nicht, was macht der?
-W ist der Timeout. Wenn ping nach n Sekunden (im obigen Beispiel 5) nicht erfolgreich war, bricht es ab.
Linuxneuling
03.12.2004, 13:10
wenn ich wissen will, ob (bzw. wie oft) /dev/hda1 gemountet ist frage ich
cat /etc/mtab | grep -c /dev/hda1
wenn es (ein mal) gemountet ist bekomme ich eine 1, wenn nicht, eine null.
hilft dir das weiter?
gruss, fossy.
Wie gebe ich die Rückgabewert an, wenn 1 dann ist gemountet und auch ok, und der Skript soll bei then weiter machen und nicht bei else....
if cat /etc/mtab | grep -c /mnt/ | return = 1
then cp /home/office/test.txt /mnt/
else echo "konnte nicht kopiert werden"
fi
if [ `cat /etc/mtab | grep -c /mnt/` -eq 1 ]; then
cp /home/office/test.txt /mnt/
else
echo "konnte nicht kopiert werden"
fi
Na der Rückgabewert steht wieder in $?
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.