Echo 变量 - 相同方式,不同输出

Echo 变量 - 相同方式,不同输出

我写了一个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”和脚本的所有者也是 root。我只是想知道正常执行和 crontab 执行之间的输出有何不同。

这是我的 crontab 条目:

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

有什么建议么?

答案1

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

答案2

工作目录很可能不是文件存储的目录(例如/var/www)。请尝试指定完整路径test.txt

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

相关内容