回声variables – 相同的方式,不同的输出

我写了一个包含以下内容的shell脚本

#!/bin/bash value=`cat test.txt` echo "Output: $value" >> currentOutput.txt 

通过在shell中执行这个脚本,它会正确地写入currentOutput.txt中的值。 通过在/ etc / crontab上执行这个脚本,这个文件只会被填充“Output:”。

shell和crontab中的执行用户是root。 另外从“currentOutput.txt”,“test.txt”和脚本的所有者是根。 我只是想知道正常执行和crontab执行之间的不同输出。

这是我的crontab项目:

 */5 * * * * root /bin/sh /var/www/testscript.sh 

有什么build议么?

尝试使用test.txt的绝对path,crontab不太可能使用与执行脚本时相同的本地目录,并且该文件可能不存在。

工作目录很可能不是你的文件所在的目录(例如/var/www )。 尝试指定test.txt的完整path。

在cron作业中,您应该尽可能具体,因为整个环境与您的正常shell环境有很大不同。