Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在bash-3.2中找不到命令$_Linux_Bash - Fatal编程技术网

Linux 在bash-3.2中找不到命令$

Linux 在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,我的系统中已经安装

我尝试使用bash运行脚本文件,但它显示了一个错误

bash-3.2$example.sh:未找到命令

我也试过了 ls-l example.sh

我发现它不是可执行的,所以我使用 sudo chmod 777 example.sh

我再次尝试运行它,但同样的错误来了。我使用ls再次检查了我是否与文件位于同一文件夹中。但我仍然无法执行脚本文件

最后,我尝试创建一个虚拟脚本文件并运行它,发现了相同的错误

我认为BASH有一些问题。有人能帮我解决什么问题吗

我正在使用redhat,我的系统中已经安装了bash


由于我是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系统到底是如何工作的:)