【发布时间】:2015-08-19 01:44:54
【问题描述】:
我正在尝试读取来自 crontab -l 的输出,以验证是否正确添加了 cronjob。
crontab -l 现在的输出是:
0 */3 * * * ~/scripts/snapshot.sh(应该是这样的)。
我要检查的脚本如下:
#!/bin/bash
if `crontab -l` = "0 */3 * * * ~/scripts/snapshot.sh"; then
echo "Done creating a cronjob"
else
echo "NOTICE: Failed creating a crontab"
fi
如果我执行以下操作,我已经尝试了多种方法,但都没有奏效:
#!/bin/bash
croncheck=`crontab -l`
echo $croncheck
#or
#echo `crontab -l`
输出显示如下:
0 */3 cronjobs scripts test.sh cronjobs scripts test.sh cronjobs scripts test.sh ~/scripts/snapshot.sh
而不是它应该显示的(应该是什么)。
【问题讨论】:
-
* 正在扩展为文件名
-
那么我怎样才能让它工作呢?你能帮忙吗?
-
和 "=" 比我期望的字符串比较少一点。您可以单引号比较字符串,但我建议编写一个正则表达式来检查。对于 bash 字符串比较,我的第一个命中是:stackoverflow.com/questions/2237080/…
-
if [ -z `crontab -l | grep '^0 \*/3 \* \* \* ~/scripts/snapshot.sh' ` ]; then ...因为如果您需要另一个 cronjob,您的版本中的所有内容都会中断。 -
flaschenpost,您能否将其作为答案,以便我将其标记为已回答?再次感谢您!
标签: bash ubuntu if-statement crontab