我有一个 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...)
。