crontab 执行shell脚本报错,但 在shell里可以执行

crontab 执行的时候就报错,在正常的shell环境下就可以执行,有时还会报错,如:
[[: not found
unexpected operator
。。
可能原因如下:
1。crontab 的shell环境是 /bin/sh  而 sh 是指向 dash 的,dash 算是 bash的简化版吧。
因此 dash 的功能没有bash强大。也就导致在shell里可以执行的脚本,在crontab 里执行不了
,因为shell 的 环境是/bin/bash。
所以,要让在shell里能执行的脚本也能在crontab里执行,可以在crontab 前面加上 SHELL=/bin/bash 就行了!
步骤:
$ crontab -e
加上一行:SHELL=/bin/bash

2. 还有一种可能是shell脚本出现语法或逻辑错误,检查一下是不是该有空格的地方没加空格,不该加空格的地方加了空格比如 var=“hehe”  等号两边是不能有空格的,,,
if空格[空格 $? 空格-eq空格 0 空格]

猜你喜欢

转载自jacklin2015.iteye.com/blog/2228183
今日推荐