Я пишу сценарий оболочки для 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 ответ1

3

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

Портативный способ добавить стандартный вывод и стандартную ошибку в файл

mycommand >>log.txt 2>&1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .