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
cron
wird mit ausgeführt sh
und 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