带有函数的linux cron脚本没有运行

Bet*_*eto 0 linux bash cron ubuntu-server

我正在尝试将脚本作为cron中的一项工作.

剧本:

echo "Defining function"
function talkMe() {
        echo "me"
}
echo "Start talking"
talkMe
Run Code Online (Sandbox Code Playgroud)

cron工作:

0 18 * * * /scripts/talk.sh > /tmp/talk.log
Run Code Online (Sandbox Code Playgroud)

cron errror:

Aug 23 11:24:01 database CRON[8497]: (root) CMD (/scripts/talk.sh > /tmp/talk.log)
Aug 23 11:24:01 database CRON[8494]: (CRON) error (grandchild #8497 failed with exit status 2)
Run Code Online (Sandbox Code Playgroud)

test.log:

Defining function
Run Code Online (Sandbox Code Playgroud)

在我尝试更改ROOT密码之前,脚本运行正常:

sudo su
passwd <my new pass for root>
Run Code Online (Sandbox Code Playgroud)

这个命令似乎没有效果,ROOT继续使用旧密码......但是在这个命令之后出现了CRON问题!

如何解决CRON问题,正确运行脚本?

注意:手动运行脚本,一切顺利!

cho*_*oba 5

你的剧本没有她的行.将此行插入脚本的顶部:

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

脚本可能由另一个使用不同语法定义函数的shell运行.