Использование% в команде cron

Поскольку % имеет особое значение для cron, как я могу использовать его как часть команды?

Я нашел эту страницу http://www.hcidata.info/crontab.htm, в которой упоминается трубопровод echo а также sed чтобы избежать % а затем удалите лишние \, но в моем случае команда date, который не принимает параметры через STDIN, так что это не работает:

echo '+\%Y' | sed -e 's|\\||g' | date

Я думаю, что могу создать специальный скрипт даты, который будет выводить дату в нужном мне формате, и вместо этого вызывать ее, но я все еще задаюсь вопросом, возможно ли сделать это непосредственно в команде cron.

Спасибо!

1 ответ

Решение

Справочная страница crontab(5) гласит:

Знаки процента (%) в команде, если они не экранированы обратной косой чертой (), будут заменены на символы новой строки, [...]

так что вы должны быть в состоянии избежать % символ с префиксом с обратной косой чертой \:

00 15 * * *  user  date '+\%Y'

\% последовательность обрабатывается cron поэтому оболочка увидит команду date '+%Y' который является правильным вызовом date,

Другие вопросы по тегам