MOTSM
Anmeldungsdatum: 24. April 2009
Beiträge: 88
|
Hallo zusammen! Wir haben in Gemeinschaftsarbeit einen Artikel erstellt, der einfache zeitgesteuerte Ausführung von Befehlen ermöglicht. Die Idee war ursprünglich ein Wecker der Musik abspielt, daher auch der (momentane) Artikelname. Der Artikel befindet sich hier. Es existiert bereits eine Diskussionsseite, daher kann dieser Thread nicht als solche verlinkt werden. Ich hoffe ich konnte die wiki-Konformität soweit herstellen. Wie in der Diskussion nachlesbar hatten wir gedacht der Artikel könnte in Skripte passen. Ich persönlich finde den Artikelnamen nicht mehr passend, da mit den Skripten mehr als nur Wecker realisierbar sind, habe aber auch keine Idee wie man den Artikel allgemein und kurz nennen könnte. Viel Spaß beim Zerreißen! ☺
|
MOTSM
(Themenstarter)
Anmeldungsdatum: 24. April 2009
Beiträge: 88
|
Ein frohes neues Jahr zusammen! Ich wollte hier mal eben den Thread wieder hochholen, da diesbezüglich noch nichts passiert ist.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
Servus ☺ MOTSM schrieb: Es existiert bereits eine Diskussionsseite, daher kann dieser Thread nicht als solche verlinkt werden.
Ach? 😉
Ich hoffe ich konnte die wiki-Konformität soweit herstellen.
Sieht gut aus 👍 Am Ende vllt noch ein Link auf Skripte? Ansonsten von meiner Seite aus ok. Sorry für das Übersehen 😕 Gruß kaputtnik
|
MOTSM
(Themenstarter)
Anmeldungsdatum: 24. April 2009
Beiträge: 88
|
Ein Link auf Skripte zusätzlich zum Skripte-tag? Und wenn der Artikel ohnehin in /wiki/Skripte liegen wird, wäre das doch überflüssig, oder? Wenn ichs richtig sehe, verlinken die anderen Artikel in Skripte auch nicht zurück. Wie ist es denn mit dem Namen überhaupt? Ich finde ihn ja wie gesagt nicht sonderlich passend.
|
ramnit
Anmeldungsdatum: 12. Dezember 2009
Beiträge: 922
|
MOTSM schrieb: Ein Link auf Skripte zusätzlich zum Skripte-tag?
Der Artikel ist witziger weise der einzige, der das Skripte-Tag verwendet... 😕
Wie ist es denn mit dem Namen überhaupt? Ich finde ihn ja wie gesagt nicht sonderlich passend.
Was hältst du von zeitgesteuerte Befehlsausführung? Zugegebener Maßen ein bisschen sperrig, aber besser lässt sich der Inhalt kaum beschreiben.
|
MOTSM
(Themenstarter)
Anmeldungsdatum: 24. April 2009
Beiträge: 88
|
ramnit schrieb: Was hältst du von zeitgesteuerte Befehlsausführung? Zugegebener Maßen ein bisschen sperrig, aber besser lässt sich der Inhalt kaum beschreiben.
sowas in der Art hatte ich mir auch vorgestellt. Meint ihr einen Skripte-Link unter einer zusätzlichen Überschrift (dann eben Links oder so)?
|
ramnit
Anmeldungsdatum: 12. Dezember 2009
Beiträge: 922
|
MOTSM schrieb: Meint ihr einen Skripte-Link unter einer zusätzlichen Überschrift (dann eben Links oder so)?
Ich denke, das war, was kaputtnik vorschwebte. Stichprobenartige Überprüfung der anderen Skript-Artikel geben dir aber recht: Einen Link auf Skripte gibt es dort auch nicht.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
ramnit schrieb: MOTSM schrieb: Meint ihr einen Skripte-Link unter einer zusätzlichen Überschrift (dann eben Links oder so)?
Jepp ☺ Ich denke, das war, was kaputtnik vorschwebte. Stichprobenartige Überprüfung der anderen Skript-Artikel geben dir aber recht: Einen Link auf Skripte gibt es dort auch nicht.
Ich persönlich finde, das am Ende eines jeden Artikels mindestens ein Link zu einer Themenbezogenen Übersichtsseite stehen sollte. In diesem Fall könnte man auch darauf verzichten, weil die Brotkrumennavigation hier funktioniert. Bei anderen Artikel sieht das anders aus... Das mit dem Link war nur ein Vorschlag, keine Forderung 😉 Wenn keine Anmerkungen mehr kommen, würden wir am Wochenende verschieben. *Notizzettel mach* Gruß kaputtnik
|
MOTSM
(Themenstarter)
Anmeldungsdatum: 24. April 2009
Beiträge: 88
|
Links sind eingefügt worden, ich habe nichts dagegen, gerade auch noch mit at, das ist ja schon sinnvoll. vor dem Verschieben: bitte noch umbenennen. Ich finde ramnits Vorschlag inhaltlich sehr treffend, nur eben wie er selber sagt etwas sperrig. Wenn sonst nichts gegen diesen Namen spricht votiere ich ausdrücklich für die Umbenennung in zeitgesteuerte Befehlsausführung. Danke!
|
frustschieber
Ehemalige
Anmeldungsdatum: 4. Januar 2007
Beiträge: 4259
|
unbenannt wie gewünscht & verschoben. wohin soll verlinkt werden?
Danke an den Autor MOTSM
|
ramnit
Anmeldungsdatum: 12. Dezember 2009
Beiträge: 922
|
Wär glaub ich ganz sinnvoll, wenn der Artikel, wie auch die anderen unter Skripte liegt, also Skripte/zeitgesteuerte Befehlsausführung, damit die Brotkrumen-Navigation funktioniert. Sinniger Weise sollte er dann auch unter Skripte genannt/gelinkt werden.
|
fpunktk
Anmeldungsdatum: 24. Oktober 2007
Beiträge: 142
|
Ich finde die Skripte im Artikel sind sind ziemlich schlecht programmiert und sollten unbedingt ersetzt werden.
Gerade Anfänger werden sich ja hier Ideen für eigene Skripte holen und sollten daher gute Vorlagen vorgesetzt bekommen. Meine Kritik im Einzelnen: | #!/bin/bash
let H=3600*$1
let M=60*$2
let S=1*$3
let SEC=$M+$H+$S
sleep $SEC
# Hier den auszuführenden Befehl einfügen
|
Man benötigt die Variablen gar nicht, folgendes genügt: | #!/bin/bash
sleep $((3600*$1 + 60*$2 + $3))
# Hier den auszuführenden Befehl einfügen
|
Bei diesem Skript: | #!/bin/bash
echo "Wann soll der Befehl ausgeführt werden? (hhmm)"
read u
d=$(date +%H%M )
while [ $d -ne $u ]; do
d=$(date +%H%M )
done
# Hier den auszuführenden Befehl einfügen
|
ist das erste Problem die unnötige Verwendung der Variablen d . Das zweite und größere Problem ist, dass die Schleife sinnloser Weise eine sehr hohe CPU-Last erzeugt. Ausreichend wäre: | #!/bin/bash
echo "Wann soll der Befehl ausgeführt werden? (hhmm)"
read u
while [ $(date +%H%M ) -ne $u ]; do
sleep 55
done
# Hier den auszuführenden Befehl einfügen
|
Prinzipiell würde ich hier aber einen anderen Weg wählen: Anfangs ausrechnen, wie viele Sekunden zwischen jetzt und der eingegebenen Zeit liegen und dann so lange Schlafen: | #!/bin/bash
now=$(/bin/date +%s) # Zeit jetzt, in Sekunden seit 1970
rem=$(/bin/date -d "$1" +%s) # Zeit für die Ausführung des Befehls, in Sekunden seit 1970
remreadable=$(/bin/date -d "$1" +%Y-%m-%d-%H:%M:%S) # menschenlesbare Zeit für die Ausführung des Befehls
sleeptime=$(($rem - $now)) # Zeit in Sekunden für sleep
echo "in $(($sleeptime / 60)) minuten um $remreadable wird der nachfolgende Befehl ausgeführt." # kleine Ausgabe um zu sehen, ob man alles richtig eingegeben hat
sleep $sleeptime
# Hier den auszuführenden Befehl einfügen
|
Hier kann man zwar keine Zeit mehr in der Form HHMM eingeben, dafür aber so: HH:MM, HH:MM:SS, 100sec, 30min, 20hours, ... (alles, was date versteht) Wenn es sonst niemand machen möchte, dann würde ich den Artikel überarbeiten. Ich reiße mich aber nicht darum. Sicherlich sollte man auch nochmal meine Lösung diskutieren und das letzte Skript im Artikel muss auch noch überarbeitet werden. (Dieser Beitrag ist als konstruktive Kritik gedacht und soll bitte nicht abwertend verstanden werden. Ich habe auch mal mit solchen Fehlern angefangen.)
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
Servus ☺ so viel ich weiß, gab es zu dem Skript eine ausführliche Diskussion im Forum projekte... siehe: multimedia-wecker Gruß kaputtnik
|
fpunktk
Anmeldungsdatum: 24. Oktober 2007
Beiträge: 142
|
kaputtnik schrieb: so viel ich weiß, gab es zu dem Skript eine ausführliche Diskussion im Forum projekte... siehe: multimedia-wecker
Das wusste ich nicht. Dort wird aber auch nicht auf die Probleme eingegangen.
|
MOTSM
(Themenstarter)
Anmeldungsdatum: 24. April 2009
Beiträge: 88
|
fpunktk schrieb:
Dort wird aber auch nicht auf die Probleme eingegangen.
Richtig, weil sich dort niemand diesen Problemen bewusst war! ☺
die unnötige Verwendung der Variablen d.
ohne Einwand akzepiert.
sinnloser Weise eine sehr hohe CPU-Last erzeugt.
Das war/ist mir bewusst, ich dachte aber, im Falle eines Weckers, ist der Rechner mit nichts anderem beschäftigt, das wird die CPU schon hinkriegen, deine Lösung ist aber sicher elegant
Hier kann man zwar keine Zeit mehr in der Form HHMM eingeben,
Die angeführte Alternative ist meines Erachtens her mehr als akzeptabel, wie in dem von kaputtnik angeführten Forumsthread bemerkt, bin ich wirklich kein großer Skripter.
Wenn es sonst niemand machen möchte, dann würde ich den Artikel überarbeiten. Dieser Beitrag ist als konstruktive Kritik gedacht und soll bitte nicht abwertend verstanden werden. Ich habe auch mal mit solchen Fehlern angefangen.
Ich möchte ungern Dinge veröffentlichen, die ich nicht vollständig nachvollziehen kann. Insofern wäre ich für Fremdkorrektur dankbar!
|