erro de sintaxe próximo ao token inesperado '' no script executado pelo cron

0

Estou escrevendo um script de shell para Mac OS / Linux. O script é executado por um cron job. Eu estou tentando acrescentar stdout e stderr a um arquivo de log. Meu comando (simplificado) se parece com isso (linha 5 em myscript.sh ):

mycommand &>> log.txt

Eu recebo o seguinte erro:

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

No entanto, se eu alterar o comando para:

mycommand &> log.txt

Eu não recebo nenhum erro, mas o arquivo é sobrescrito (não anexado).

Alguma idéia de por que &>> não funciona, mas &> funciona?

    
por Caner 11.04.2018 / 14:10

1 resposta

3

cron é executado usando sh e a sintaxe de redirecionamento que você está tentando usar é uma extensão Bash (e bem recente; versões mais antigas do Bash suportam apenas &> ).

A maneira portátil de acrescentar saída padrão e erro padrão a um arquivo é

mycommand >>log.txt 2>&1
    
por 11.04.2018 / 14:20