date
wird ausgeführt, wenn das Skript ausgeführt wird, da die `…`
Syntax in Anführungszeichen steht. Es ist auch in inneren einfachen Anführungszeichen, aber die äußersten Anführungszeichen zählen. Das Ergebnis ist at
nicht "sehen", `date …`
sondern seine Ausgabe.
Äußere Anführungszeichen einfach, innere Anführungszeichen doppelt machen. at
wird die gesamte Zeichenfolge erhalten, wie sie ist. Wenn die Zeit reif ist, läuft sh
sie `date …`
in doppelten Anführungszeichen und wird nur dann date
ausgewertet:
at "$runTIME" <<< ' echo "Running a task...." echo "An other task...." echo "END : (`date +%H:%M`)" >>"$logFILE" '
Hinweis Ich habe die meisten einfachen Anführungszeichen ( '+%H:%M'
) gelöscht . In meiner Version würden sie verschwinden, während sie die Saite übergeben at
; Der Code funktioniert auch ohne sie.