与this OP相同的问题,但必须是一个单独的原因。
以下脚本:
#!/bin/sh
arr=("cat" "dog" "bird")
以交互方式(debian)工作,但在crontab调用时失败:
/bin/sh: 2: /path/zero_check.sh: Syntax error: "(" unexpected
我尝试使用#!/bin/bash
shebang,并使用declare -a arr=("cat" "dog" "bird")
声明数组,但没效果。
知道为什么吗?
答案 0 :(得分:5)
答案 1 :(得分:1)
在crontab条目中明确指定解释器。使用
bash /path/zero_check.sh
而不是
/path/zero_check.sh
答案 2 :(得分:1)
就文档而言, 我要运行一个旧脚本,该脚本在Shebang中出现语法错误:
#/bin/bash
代替
#!/bin/bash
还要检查脚本是否当然是可执行的。
答案 3 :(得分:0)
错误的bash函数声明非常类似的问题。从命令行可以正常运行,但是会导致cron失败...
function test () { ... }
Cron应该将错误保存在/ var / mail中
我还建议使用“ shellcheck”代替,因为它发现了另一个我没有注意到的错误。