at: Befehl wird direkt ausgeführt

Hallo zusammen!
Ich habe ein Problem mit dem Befehl "at". Ich möchte ein Skript mit einigen Parametern wie unten dargestellt ausführen. Nach dem Absetzen des unteren Befehls, wird das Skript aber direkt ausgeführt - obwohl die Zeit noch nicht gekommen ist. Zur gegeben Zeit macht at gar nichts, ausser den Eintrag zu entfernen.

Code:
/home/saghallo.sh hallo mensch | at 20:42 06.12.2007
Das Skript saghallo.sh macht nichts anderes als die beiden Parameter hallo und mensch in ein File zu schrieben. Natürlich verwende ich immer ein Datum, das in der Zukunt liegt. Könnte es an der Form, wie ich das Datum angebe, liegen?

Vielen Dank für eure Bemühungen!

CW
 
Also ich kenne das eigentlich eher mit einem Redirect und nicht mit einem Pipe:

Code:
at 01:35 < datei-in-der-der-job-definiert-ist

Kann at überhaupt aus einer Pipe lesen? Schliesslich ist das ja kein Standard-Input (stdin), der normalerweise ja per Default verwendet wird, wenn man keine Datei nutzt.
 
Original von bitmuncher
Kann at überhaupt aus einer Pipe lesen?
siehe man at
at and batch read commands from standard input
du benutzt bei der umleitung ja selbst stdin, also geht auch
cat /pfad_da_hin/datei-in-der-der-job-definiert-ist | at 01:35, das wäre aber uuoc, besser
echo "/pfad_da_hin/datei-in-der-der-job-definiert-ist" | at 01:35
am besten wohl
at -f /pfad_da_hin/datei-in-der-der-job-definiert-ist 01:35

das kommando
/home/saghallo.sh hallo mensch | at 20:42 06.12.2007 ist natürlich unsinnig, da es sich wohl bei "/home/saghallo.sh hallo mensch" um den batchjob selbst handelt und der wird durch die pipe natürlich ausgeführt und die ausgabe, wenn es denn eine gibt, als at-job-definition an at geschickt.
 
Spontan hab ich keines zur Hand, da die meisten Programme das Redirect- und Pipe-Handling der Shell überlassen. Ich weiss aber, dass ich vor einigen Jahren mal an einem ähnlichen Problem festhing und erst nach stundenlanger Fehlersuche feststellte, dass das Programm mit Pipes einfach nicht umgehen konnte, von STDIN aber durchaus Daten entgegennahm. Welches genau das war, weiss ich aber nach so langer Zeit leider nicht mehr. Seitdem beziehe ich diese Möglichkeit aber bei Fehlersuchen immer mit ein.
 
Original von bitmuncher
Spontan hab ich keines zur Hand, da die meisten Programme das Redirect- und Pipe-Handling der Shell überlassen.
das ist ja auch die sache der shell
Ich weiss aber, dass ich vor einigen Jahren mal an einem ähnlichen Problem festhing und erst nach stundenlanger Fehlersuche feststellte, dass das Programm mit Pipes einfach nicht umgehen konnte, von STDIN aber durchaus Daten entgegennahm.
zu beachten ist ja, dass die einzelnen durch pipes verketteten kommandos dann jeweils in einer subshell laufen und damit zb "probleme" mit den variablenzuweisungen entstehen, da die variablenzugriffe in der subshell nur auf diese begrenzt sind und die variablken nach dem beenden der subshells verloren gehen. beim redirect passiert das nicht.
 
Zurück
Oben