在Crontab中的Bash脚本中的/ Do / Done循环错误

时间:2014-08-11 13:56:05

标签: linux bash unix cron crontab

我正在尝试通过crontab运行一个abash脚本,每次我尝试时,脚本都不会运行,我得到的错误是:“[[:Not Found”

我目前正在使用带有以下编码的while循环:

SHELL/=bin/sh

padtowidth=2
START=0
END=15
i=${START}

while [[ ${i} -le ${END} ]]
do

done
((i = i + 1))

我不确定为什么crontab不喜欢开头的双括号......

2 个答案:

答案 0 :(得分:3)

使用bash在crontab中显式运行脚本,因为/bin/sh是crontab使用的默认shell。

* ... * /bin/bash /path/to/your/script.sh

我不确定SHELL/=bin/sh做了什么,但这是一个格式错误的任务。至少它应该是SHELL=/bin/sh

答案 1 :(得分:1)

这是因为[[...]]是BASH特定的。

使用以下命令将shell更改为BASH:

SHELL=/bin/bash

((...))中不支持算术评估括号sh(用作脚本的最后一行)