синтаксическая ошибка около неожиданного токена `>' в скрипте, запущенном cron

синтаксическая ошибка около неожиданного токена `>' в скрипте, запущенном cron

Я пишу скрипт оболочки для Mac OS/Linux. Скрипт запускается заданием cron. Я пытаюсьдобавить stdout и stderrв файл журнала. Моя команда (упрощенно) выглядит так (строка 5 в myscript.sh):

mycommand &>> log.txt

Я получаю следующую ошибку:

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

Однако если я изменю команду на:

mycommand &> log.txt

Никаких ошибок не возникает, но файл перезаписывается (не добавляется).

Есть идеи, почему &>>не работает, но &>работает?

решение1

cronвыполняется с помощью sh, а синтаксис перенаправления, который вы пытаетесь использовать, является расширением Bash (причем довольно новым; поддерживаются только более старые версии Bash &>).

Портативный способ добавления стандартного вывода и стандартной ошибки в файл —

mycommand >>log.txt 2>&1

Связанный контент