Estou escrevendo um script de shell para Mac OS/Linux. O script é executado por um cron job. eu estou tentandoanexar stdout e stderrpara um arquivo de log. Meu comando (simplificado) fica assim (linha 5 myscript.sh
):
mycommand &>> log.txt
Estou tendo o erro a seguir:
myscript.sh: line 5: syntax error near unexpected token `>
No entanto, se eu mudar o comando para:
mycommand &> log.txt
Não recebo nenhum erro, mas o arquivo foi sobrescrito (não anexado).
Alguma idéia de por que &>>
não funciona, mas &>
funciona?
Responder1
cron
é executado usando sh
e a sintaxe de redirecionamento que você está tentando usar é uma extensão Bash (e bastante recente; apenas versões mais antigas do Bash são suportadas &>
).
A maneira portátil de anexar saída padrão e erro padrão a um arquivo é
mycommand >>log.txt 2>&1