【发布时间】:2015-04-29 22:28:58
【问题描述】:
我试图让 crontab 在我的 Raspberry PI 上运行,但我认为我弄乱了我的环境变量。我可以通过右键单击并选择执行从 GUI 执行文件。但是我无法从命令行运行相同的文件。我可以使用 ls 查看文件 (ChromeTab.sh),但是当我输入 ChromeTab.sh 时,我得到 "bash: ChromeTab.sh: command not found"。
我想我把它放在 crontab 中时弄乱了我的环境变量。
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
我按照Script doesn't run via crontab but works fine standalone中的示例进行操作。
知道我做错了什么吗?
更新: 好的, 让我澄清一下在我在 stackoverflow 上发布我的问题之前我做了哪些努力,然后再被否决。
首先感谢 S. Adam Nissley 的建议。 回答您上面列出的步骤。 从主路径或完全限定的路径运行它不能按所述工作。 错误:bash:ChromeTab.sh:找不到命令
./ChromeTab.sh
我还确保了文件的读/写和执行权限
chmod +x ./ChromeTab.sh
另外,我的 bash 脚本以以下 shebang 开头
#!/bin/sh
所以,我想说的是,无论是否使用 crontab,手头的问题是我什至无法从命令行执行脚本。在我弄乱了 crontab 中的环境变量之后,这种情况就开始发生了。我正在寻找一种方法来恢复到我至少可以从终端运行/执行 bash 命令的情况。
我可以有效执行此脚本的唯一方法是通过 GUI(右键单击执行)。
【问题讨论】:
-
您的
PATH看起来很正常。当前工作目录.不应该在您的PATH中(如您所愿,如果我正确解释了您的问题),否则您将遇到严重的安全风险。您应该做的是在 crontab 中指定CrhomeTab.sh的完整路径。
标签: bash raspberry-pi crontab raspbian