Syntaxfehler nahe unerwartetem Token `>' in einem von cron ausgeführten Skript

Syntaxfehler nahe unerwartetem Token `>' in einem von cron ausgeführten Skript

Ich schreibe ein Shell-Skript für Mac OS/Linux. Das Skript wird von einem Cron-Job ausgeführt. Ich versuchestdout und stderr anhängenin eine Logdatei. Mein Befehl (vereinfacht) sieht so aus (Zeile 5 in myscript.sh):

mycommand &>> log.txt

Ich erhalte die folgende Fehlermeldung:

myscript.sh: line 5: syntax error near unexpected token `>

Wenn ich den Befehl jedoch wie folgt ändere:

mycommand &> log.txt

Ich erhalte keine Fehlermeldungen, aber die Datei wird überschrieben (nicht angehängt).

Irgendeine Idee, warum &>>es nicht funktioniert, aber &>funktioniert?

Antwort1

cronwird mit ausgeführt shund die Umleitungssyntax, die Sie verwenden möchten, ist eine Bash-Erweiterung (und zwar eine relativ neue; ältere Versionen von Bash unterstützten nur &>).

Die portable Möglichkeit, Standardausgabe und Standardfehler an eine Datei anzuhängen, ist

mycommand >>log.txt 2>&1

verwandte Informationen