通过 cron 在 bash 中改变变量?

通过 cron 在 bash 中改变变量?
#!/bin/bash

ddd=$(date +%Y-%m -d "-1 month")
xmessage  -timeout 10 $ddd

如果我尝试这个简单的脚本,我可以让它在终端上正常工作,但是当我通过cron变量启动这个脚本时,它总是空的?我尝试了许多不同的语法,但结果是一样的。在终端上有效,但在 cron 上无效。

答案1

man date说:

SYNOPSIS
       date [OPTION]... [+FORMAT]

无论哪种方式都应该可以工作,但为了安全起见,请按照date手册页中的方法操作:

ddd=$(date -d "-1 month" +%Y-%m)

使用脚本

#!/bin/bash
ddd=$(date -d "-1 month" +%Y-%m)
xmessage -timeout 10 $ddd

和 cronjob 行

* * * * * DISPLAY=:0 /path/to/script.sh

它在我的系统上运行得很好 – 参见如何从 cron 启动 GUI 应用程序?Cron 操作指南

相关内容