PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Denkfehler in Bash-Script?



CboyGeek
08-11-2002, 20:20
Hallo!

Habe folgendes Problem mit meinem Shell-Script (ziemlich sicher ein Syntaxproblem, da das mein erstes Script ist *g*):



#!/bin/bash

route > /root/route.log
while ! grep ppp0 /root/route.log
do
pon dsl-provider # Anwahl DSL starten
route > /root/route.log
done

exit 0


Kann mir hier wer weiterhelfen?

tomes
09-11-2002, 12:15
1. # route nicht immer mindestens einen Eintrag fuer ppp0 aus ?
Also ob eingewaehlt oder nicht ?
2. Die while Schleife soll nur dann durchlaufen werden, wenn grep nichts zurueck liefert (while ! ..). Sehe ich das richtig ?
Dann muesste der dahinterliegende Befehl zwischen diese Anfuehrungszeichen? -->` ` stehen.
Allerding wuerde dann der # route Befehl in der Schleife, aus der Schleife eine Endlosschleife machen.

T;o)Mes

blackm
12-11-2002, 07:40
Hi CboyGeek,


Original geschrieben von CboyGeek


#!/bin/bash

route > /root/route.log
[...]
willst du nicht lieber ifconfig verwenden um herauszubekommen? Bei route ich nicht so ganz 100%is sicher ob die Verbindung steht (kann ja sein, das durch einen Fehler die Verbindung hergestellt wurde, aber keine route zum ISP hergestellt wurde.

by, Martin

fork
12-11-2002, 16:41
...oder eine dns-Abfrage
if host www.mrunix.de
then echo "Internetverbindung steht"
else pon dsl-provider
fi

CboyGeek
12-11-2002, 20:04
Fork, dein Vorschlag klingt einfach und effizient! Aber könnte ich das ganz nicht ner while-Schleife verbauen, damit er mir das ständig prüft? Würde das viel Ressourcen verbraten?

fork
12-11-2002, 20:23
Aha ein immer-online-sein-müsser! Pfui-Deifel!

blackm
12-11-2002, 20:38
@ CboyGeek: Ne das braucht nicht viele Ressourcen. Ich würde aber noch irgendwo ein sleep einbauen. Wenn das alle 10 oder 20 Sekunden geprüft wird, dann reicht das auch aus.

by, Martin

The Ripper
14-11-2002, 13:40
wenn du einfach nur immer online sein willst, brauchst du eigentlich garkein script, der pppd regelt das nämlich für dich ;)

einfach "persist" und eine zeile darunter "maxfail 0" in /etc/ppp/peers/dsl-provider eintragen