Linux 在bash-3.2中找不到命令$
我尝试使用bash运行脚本文件,但它显示了一个错误 bash-3.2$example.sh:未找到命令 我也试过了 ls-l example.sh 我发现它不是可执行的,所以我使用 sudo chmod 777 example.sh 我再次尝试运行它,但同样的错误来了。我使用ls再次检查了我是否与文件位于同一文件夹中。但我仍然无法执行脚本文件 最后,我尝试创建一个虚拟脚本文件并运行它,发现了相同的错误 我认为BASH有一些问题。有人能帮我解决什么问题吗 我正在使用redhat,我的系统中已经安装了bashLinux 在bash-3.2中找不到命令$,linux,bash,Linux,Bash,我尝试使用bash运行脚本文件,但它显示了一个错误 bash-3.2$example.sh:未找到命令 我也试过了 ls-l example.sh 我发现它不是可执行的,所以我使用 sudo chmod 777 example.sh 我再次尝试运行它,但同样的错误来了。我使用ls再次检查了我是否与文件位于同一文件夹中。但我仍然无法执行脚本文件 最后,我尝试创建一个虚拟脚本文件并运行它,发现了相同的错误 我认为BASH有一些问题。有人能帮我解决什么问题吗 我正在使用redhat,我的系统中已经安装
由于我是linux的新手,因此非常感谢您的帮助
(当前目录)可能不在您的路径上。尝试/example.sh
或bash example.sh
。您也可以将
添加到路径
环境变量中,但通常不赞成这样做。您的bash路径可能不包含
,请尝试通过键入以下内容来运行它:
./example.sh
键入命令时,shell将搜索路径以尝试查找命令,如果当前目录(例如
)不是路径的一部分,则将找不到您尝试运行的脚本。您必须显式地给它这个命令所在的路径。由于它位于当前目录中,您只需在命令前面添加/
。bash在$PATH
中搜索命令。显然,当前目录
,不在您的$PATH
中。(这是一件好事;在$PATH
中使用
是不安全的。)
您需要指定一个目录名。仅键入:
./example.sh
顺便说一句,做:
sudo chmod 777 example.sh
这是两种过度杀伤力。首先,您不需要使用sudo
;只有在实际需要时才使用sudo
。大概您的个人帐户拥有该文件,因此您可以直接使用chmod
第二,777
太放纵了。它允许系统中的任何人读取、执行或修改example.sh
。(如果你是系统上唯一的人,这可能没什么大不了的,但这仍然是一个坏习惯。)通常,对于需要执行的目录和文件,你应该使用755
,对于不需要执行的文件,应该使用644
或者只是使用
chmod +x example.sh
设置执行权限(您的umask将防止权限设置过于松散)。首先确认bash路径 要检查bash的路径,请使用:
which bash
如果您得到“/bin/bash”
然后加上
#!/bin/bash
...
...
或者,无论bash脚本第一行的路径是什么,如果没有程序,我们都无法帮助您。如果问题不在于程序,而在于环境(linux、bash版本,…),您可能需要在其他站点询问。谢谢。。我不知道path系统到底是如何工作的:)