我有以下 bash 脚本:
FILE=/home/pi/kpidry/test.zip
if test -f "$FILE";
then
echo "$FILE exists"
rm -r /home/pi/test/*
unzip /home/pi/kpidry/test.zip -d /home/pi/test/
rm -r /home/pi/kpidry/test.zip
fi
exit 0
当我手动运行该脚本时,该脚本运行良好,并按预期执行所有命令。但是,我在 rc.local 中添加了一行以便在启动时运行该脚本。当它运行时,它会执行除 unzip 行之外的每一行。难道是因为解压程序还没有运行?如果是这样,我可以在 rc.local 中手动运行它吗?
很感谢任何形式的帮助!
答案1
我认为 /usr/bin/ 中的文件不能保证在启动时可用:
/usr/bin 是类 Unix 操作系统上的标准目录,其中包含引导(即启动)或修复系统不需要的大部分可执行文件(即准备运行的程序)。 (参考:http://www.linfo.org/usr_bin.html)
尝试调用“/usr/bin/unzip”而不是解压缩。
如果调用来得足够晚,并且 /usr/bin/ 那时已安装,并且只是缺少 PATH 环境,则可以工作。