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



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

外壳脚本作为 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 脚本并将环境变量解析为 true 值,如下所示:

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

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

如何使脚本的环境变量不被计算并保持原样?

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

最新更新