【发布时间】:2016-12-16 22:33:27
【问题描述】:
我在 cronjob 中使用 linux 'date' 命令时遇到问题。
Linux 版本:CentOS Linux 7 (Core)
我需要的是 9 天前的日期作为我的 test.sh 脚本的参数。 今天是10-08-2016,需要执行的工作是:
/scripts/test.sh 2016-08-01
我在 crontab 中的代码:
DATEVAR=$(date +%F --date="9 days ago")
0 12 * * tue ~/scripts/test.sh $($DATEVAR)
所以 linux 命令是 'date +%F --date="9 days ago"' 但我需要执行它并将其设置为参数。 它现在所做的是使用参数 '$(date':
~/scripts/test.sh $(date
我尝试使用以下内容设置 DATEVAR,但没有成功:
DATEVAR='date +%F --date="9 days ago"'
DATEVAR=date +%F --date="9 days ago"
DATEVAR=$(date +%F --date="9 days ago")
DATEVAR=(shell date +%F --date="9 days ago")
有谁知道这是否可行以及如何使用“date”命令的执行结果设置我的 DATEVAR?
【问题讨论】:
-
这里没有足够的信息来提供权威的答案。你用的是什么风格的 Linux?有些(Ubuntu?)不使用 bash 作为他们的
/bin/sh,有些 shell 可能不支持$(..)表示法。请尝试使用反引号。还可以尝试转义百分比字符。此外,$($DATEVAR)可能是错误的(在您的 crontab 中),因为您将执行date命令的输出,就好像它本身就是一条评论一样。