【问题标题】:How to make EMR Steps Crontab script not evaluate environment variable?如何使 EMR Steps Crontab 脚本不评估环境变量?
【发布时间】:2020-01-16 22:17:22
【问题描述】:

我有一个 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 只会在设定的日期内运行它。

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

【问题讨论】:

    标签: python cron environment-variables amazon-emr


    【解决方案1】:

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

    【讨论】:

    • 谢谢你的作品!直到您提到这一点,我才知道单引号和双引号之间有区别。
    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 2016-08-27
    • 2020-11-17
    • 2010-10-14
    • 2020-07-12
    • 2017-05-05
    • 2010-09-24
    • 1970-01-01
    相关资源
    最近更新 更多