Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Endlosschleife mit if ... fi erzeugen ?

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
shell
Gast





BeitragVerfasst am: 15. Nov 2001 9:10   Titel: Endlosschleife mit if ... fi erzeugen ?

hi ...

ich möchte eine if-schleife erzeugen, die kontinuierlich prüft, ob eine Variable einen bestimmten wert hat

z.Bsp:
#!/bin/sh

SEC=`date | cut -c18-19`
if [ "$DAT"="00" ]; then
echo -e "\007:©"
fi
#nun würde ich gerne wieder zu SEC=`...... springen wollen
Das Programm soll im Hintergrund laufen und Stündlich (hier zur vollen Minute) einen Piepton ausgeben.
 

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 15. Nov 2001 11:00   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

wäre ein cronjob nicht sinnvoller?
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)


Zuletzt bearbeitet von trinity am 15. Nov 2001 11:00, insgesamt 1-mal bearbeitet
 
Benutzer-Profile anzeigen Private Nachricht senden

shell
Gast





BeitragVerfasst am: 15. Nov 2001 11:40   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

nein .. in diesem falle nicht
brauche es sekundengenau
 

trinity



Anmeldungsdatum: 12.10.2001
Beiträge: 821

BeitragVerfasst am: 15. Nov 2001 11:48   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

dann solltest du wohl auch eine schleife verwenden. mit if erzeugt man keine schleifen, sondern mit while
_________________
"Korrekt, Freundlich, Kostenfrei", wähle genau zwei. (Lutz Donnerhacke in dcsf)
 
Benutzer-Profile anzeigen Private Nachricht senden

shell
Gast





BeitragVerfasst am: 15. Nov 2001 13:39   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

ich würde mich ehrlich über eine hilfreiche antwort freuen
 

Rossi
Gast





BeitragVerfasst am: 15. Nov 2001 14:12   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

while ["1" = "1"]; do
if ["$DAT ....
fi
done

Wäre eine endlosschleife. Allerdings nicht mit "if"
 

Jochen
Gast





BeitragVerfasst am: 15. Nov 2001 17:59   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

Ihhhh, Polling auf einem Multitasking-System?!? Na ja...

Sekundengenauigkeit ist mit Shell-Mitteln nicht zu errreichen. Entweder du lässt tatsächlich die Schleife die ganze Zeit ungebremst laufen und damit auch Rechenzeit fressen, die andere Prozesse nutzbringend anlegen könnten, oder Du wartest im Schleifenkörper mittels "sleep 1" eine Sekunde. Allerdings hat das das Problem, dass ja nach Auslastung des Systems "sleep 1" ggf. erst nach vielleicht 1,2 Sekunden zurückkommt. Damit könnte es passieren, dass Du einmal genau die Nuller-Sekunden überschlägst.

Was Du machen wolltest, könnte man also am besten so lösen:
code:

while true; do
if [ $(date "+%S") == "00" ] ; then
echo "Piep!"
else
sleep 1
fi
done



Deine Programmausschnitte haben immer so etwas herzzerreissend unvollständiges... SEC wird gesetzt, DAT wird abgefragt. Fehler? Feature? Design?

Jochen
 

shell
Gast





BeitragVerfasst am: 15. Nov 2001 18:27   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

danke jochen ;)

ich schreibe date in eine Variable und schneide es zurecht, so daß TIME="00:00:00" .. das frag ich in ner schleife ab ...
Funktioniert perfekt und auch genau, da die schleiße ja sogar mehrmals pro sekunde durchläuft
 

Jochen
Gast





BeitragVerfasst am: 15. Nov 2001 18:43   Titel: Re: Endlosschleife mit if ... fi erzeugen ?

Schau noch mal in die man-Page zu date. Mit den Format-Feldern kannst Du Dir das Zurechtschneidern der Date-Ausgabe mittels cut u.ä. sparen.

Jochen
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy