【问题标题】:bash/sh cron not writingbash/sh cron 不写
【发布时间】:2014-09-16 20:10:18
【问题描述】:

谁能看到我在这里做错了什么?这是我自己的代码的一个更简单的部分,它工作得很好。不过,我从未在 sh 上测试过它。也许某些东西对 sh 不起作用? if 语句打开 cron 并在写入之前查找相同的行。这样可以防止重复。

if [ "`crontab -l | grep $SCRIPT`" \> " " ]; then
  (crontab -l ; echo "*/10 * * * * cd /etc/myscript/sh && ./start.sh") | crontab -
fi

它从不向 cron 写入任何内容。 if 语句中的命令本身 100% 工作。不知何故,if 语句被破坏了。

这是另一种看待它的方式:

if [ "`crontab -l | grep start.sh`" \> " " ]; then
  (crontab -l ; echo "*/10 * * * * cd /etc/myscript/sh && ./start.sh") | crontab -
fi

【问题讨论】:

    标签: bash if-statement cron sh


    【解决方案1】:

    if 语句的工作方向错误:then 子句仅在脚本已安装时才会执行。此外,还可以简化:

    if ! crontab -l | grep -q start.sh; then
    

    这是因为grep 设置了正确的退出代码。

    【讨论】:

    • 哇...谢谢!
    猜你喜欢
    • 2018-09-04
    • 2015-05-15
    • 1970-01-01
    • 2017-11-16
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 2012-06-06
    相关资源
    最近更新 更多