CentOS 7运行cron任务报unexpected EOF、command not found错误如何解决
问题原因
- 第一个语法错误是未使用正确的命令替换语法:shell 中要获取命令执行结果赋值给变量,需要用
$()包裹命令,你漏写了开头的$,导致 shell 把(当成普通字符解析,匹配不到对应的闭合括号触发 EOF 报错。 - 第二个报错是转义括号后没有修正命令替换的语法,同时 cron 环境下
%属于特殊字符,会被默认解析为换行符,未转义的%会被截断成单独的命令,所以触发+ command not found报错,该问题和权限无关。
解决方法
修改 cron 任务中的命令为如下写法:
timestamp=$(date +\%s) && php generate_json.php > $timestamp.json
补充说明
- 若你的 php 命令不在 cron 默认的 PATH 路径中,建议写 php 的绝对路径,比如
/usr/bin/php,避免出现找不到命令的问题。
内容的提问来源于stack exchange,提问作者Dean
相关产品推荐
相关产品推荐

