如何使 EMR Steps Crontab 脚本不评估环境变量?

How to make EMR Steps Crontab script not evaluate environment variable?

我有一个 shell 脚本可以在 AWS EMR 上设置我们的 crontab。

shell 脚本是 运行 作为 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 步骤脚本执行此 shell 脚本并将环境变量评估为真实值,如下所示:

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

这不是我想要的,因为现在我的 cron 只会 运行 在那个设定的日期。

我怎样才能使脚本的环境变量不被评估并保持原样?

将双引号替换为单引号,以防止 $(date...)echo 为 运行 时展开。