Как заставить сценарий EMR Steps Crontab не оценивать переменную среды? - PullRequest
0 голосов
/ 17 января 2020

У меня есть сценарий оболочки, который устанавливает наш crontab на AWS EMR.

Сценарий оболочки запускается как часть настройки шагов EMR.

Однако, когда он выполняет исключение, он оценивает непосредственно дата, а не текст как есть, то, что я хочу, так как этот cronjob будет запускаться динамически на основе вчерашней даты

часть моего скрипта crontab

crontab -l && echo "0 20 * * * python app.py --date=$(date -d "yesterday" +\%Y-\%m-\%d) >> app.log  2>&1") | crontab -

вставленная вручную в emr, она показывает как оригинал, это то, что я хочу, но теперь я хочу автоматизировать настройку cron

Шаговые сценарии EMR запускают этот сценарий оболочки и переводят переменную среды в истинное значение следующим образом:

crontab -l && echo "0 20 * * * python app.py --date=2020-01-16 >> app.log  2>&1") | crontab -

Это не то, что я хочу, так как теперь мой cron будет запускать это только для этой установленной даты.

Как я могу сделать так, чтобы переменная окружения скрипта не оценивалась и оставалась в том же формате?

1 Ответ

0 голосов
/ 17 января 2020

Замените двойные кавычки одинарными, чтобы не допустить расширения $(date...) при запуске echo.

...