通过Shell与cron使用bash脚本产生的结果不一致

时间:2019-03-11 09:30:25

标签: bash cron

我有以下bash脚本使用 -n 检查字符串长度是否为非零,并通过使用 $ {1 ^^}将变量转换为大写字母来等于“ OK”

#!/bin/bash
myfunction() {
    result=0
    if [[ -n $1 && ${1^^} = "OK" ]]; then
            result=1
    fi
    echo $result >> /home/[REDACTED]/mylog
}
myfunction "ok"
myfunction "NO"

我使用以下命令将其可执行:

sudo chmod +x ./test

然后我用以下任何一个来称呼它:

bash ./test
./test

文件始终包含预期结果:

1
0

但是,当尝试从cron运行时,文件包含:

0
0

我使用以下命令设置了cron:

sudo crontab -e

这是内容:

* * * * * /home/[REDACTED]/test

我可能忽略了语法或cron环境等明显的东西……有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

不知道为什么,但是删除文件的第一行并重新键入已解决:

#!/bin/bash

谢谢大家的帮助!