Raspbian:重置Bash环境变量

Raspbian:重置Bash环境变量,bash,raspberry-pi,crontab,raspbian,Bash,Raspberry Pi,Crontab,Raspbian,我试图让crontab在我的树莓PI上工作,我想我把我的环境变量搞砸了。我可以通过右键单击并选择execute从GUI执行文件。但是,我无法从命令行获取要运行的相同文件。我可以使用ls查看文件(ChromeTab.sh),但是当我键入ChromeTab.sh时,我会得到“bash:ChromeTab.sh:command not found” 我想当我把它放到crontab中时,我把我的环境变量搞砸了 SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/b

我试图让crontab在我的树莓PI上工作,我想我把我的环境变量搞砸了。我可以通过右键单击并选择execute从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
我在文章中遵循了这些例子

知道我做错了什么吗

更新: 好啊 让我澄清一下,在将我的问题发布到stackoverflow上之前,我做了哪些努力,然后才能获得更多的反对票

首先感谢S.Adam Nissley的建议。 按照上面列出的步骤。 从主路径或完全限定路径运行此操作无法按说明工作。 错误:bash:ChromeTab.sh:未找到命令

./ChromeTab.sh
我还确保了对文件的读/写和执行权限

chmod +x ./ChromeTab.sh
另外,我的bash脚本以下面的shebang开头

#!/bin/sh
所以,我想说的是,不管是否使用crontab,当前的问题是我甚至不能从命令行执行脚本。这是在我处理crontab中的环境变量之后开始的。我正在寻找一种方法来恢复到至少可以从终端运行/执行bash命令的情况


我可以有效执行此脚本的唯一方法是通过GUI(右键单击execute)。

假设您与脚本位于同一目录中,您应该可以输入

./ChromeTab.sh
如果不执行,请确保该命令可执行

chmod +x ./ChromeTab.sh

如果它仍然无法执行,请确保它在脚本的第一行有适当的hashbang,如
#/bin/sh
#/bin/bash

当您将它添加到crontab时,请确保它具有完整的路径,如

/home/pi/bin/ChromeTab.sh  <br/>
Rasbian的默认路径为:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
/bin/bash
默认SHELL为:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
/bin/bash
因此,如果您需要设置这些参数,它非常简单:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
SHELL=/bin/bash

如果您的环境存在其他问题,您可能希望禁用一些本地设置,以查看问题是否存在于您的配置文件中。您可以使用
ls-a
列出所有文件,其中包括隐藏文件。Raspbian通常在每个用户的主目录中都有一个
.bashrc
和一个
.profile
。要禁用它们,只需重命名它们:

mv .bashrc .bashrc_disabled
mv .profile .profile_disabled

如果这解决了问题,您可以检查文件并在将其重命名回原始名称之前进行必要的更正。

您的
路径看起来非常正常。当前工作目录
不应位于您的
路径中(如您所愿,如果我正确解释了您的问题),否则您将面临严重的安全风险。您应该做的是在crontab中指定
CrhomeTab.sh
的完整路径。好的,在将问题发布到stackoverflow上之前,让我澄清一下我所做的工作。为了回答上面列出的步骤。@NetFlash我提供了一些关于Raspbian默认值的信息。@Adamn,好的,除了重命名.profile和.bashrc之外,我已经尝试了上述所有操作。如何通过禁用它们进行故障排除?另外,我已经检查了/bin文件夹。bash在那里,dash也在那里,但是sh是dash而不是bash的捷径。是否正确?@NetFlash Yes sh是dash
lrwxrwx 1 root根目录4 Dec 31 1969 sh->dash
@NetFlash如果禁用文件(然后打开一个新终端),并且一切正常,那么您知道其中一个文件有问题。如果是这样,您可以确定问题,然后重新命名。上有一份
.bashrc