无法通过cronjob将文件内容读取到变量

时间:2015-05-14 19:41:01

标签: bash shell cron

我的程序,我尝试读取变量中文件的内容。

root@pi:/tmp> cat /bin/dnsupdate
#!/bin/sh

set -xv

ip="$(cat /tmp/ip)"
echo $ip
exit 0

当我在shell中运行程序时,它运行正常。

root@pi:/tmp> dnsupdate

ip="$(cat /tmp/ip)"
+/bin/dnsupdate:5> ip=+/bin/dnsupdate:5> cat /tmp/ip
+/bin/dnsupdate:5> ip=92.192.52.164
echo $ip
+/bin/dnsupdate:6> echo 92.192.52.164
92.192.52.164
exit 0
+/bin/dnsupdate:7> exit 0

现在添加一个cronjob并记录脚本输出。

root@pi:/tmp> crontab -l
#m   h    d    m    w    cmd
*    *    *    *    *    dnsupdate >>/tmp/dns 2>>/tmp/dns
root@pi:/tmp> cat dns

ip="$(cat /tmp/ip)"
+/bin/dnsupdate:5> ip=+/bin/dnsupdate:5> cat /tmp/ip
+/bin/dnsupdate:5> ip=''
echo $ip
+/bin/dnsupdate:6> echo

exit 0
+/bin/dnsupdate:7> exit 0

还尝试#!/bin/zsh作为shebang,因为我的默认shell是zsh和类似ip=$(</tmp/ip)的东西,但仍然没有运气。当脚本通过cron运行时,为什么变量中没有内容?

0 个答案:

没有答案