„Syntaxfehler: Nicht abgeschlossener String in Anführungszeichen“ nur beim Aufruf aus Crontab

„Syntaxfehler: Nicht abgeschlossener String in Anführungszeichen“ nur beim Aufruf aus Crontab

Warum erhalte ich diesen Fehler?

/bin/sh: 1: Syntax error: Unterminated quoted string

wann rufe ich das auf /etc/crontab?

19 2 * * *   root    for f in $(cat /home/rubo77/list); do date +"%y-%m-%d %T">"$f".datefile; done

Die Liste enthält nur Pfade zu vorhandenen Verzeichnissen und dies sind die ersten Zeilen in meiner Crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

Wenn ich die forBefehlszeile auf der Konsole in Bash aufrufe, erhalte ich keine Fehler

Antwort1

Sie müssen den %Zeichen entkommen

siehe diese verwandte Frage:Wie kann ich „date“ innerhalb eines Cron-Tab-Jobs ausführen?

Damit können Sie das Problem beheben

sed -i 's/%/\\%/g' /etc/crontab

verwandte Informationen