-1

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

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

我也试过 ls -l example.sh

我发现它无法执行,所以我使用了 sudo chmod 777 example.sh

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

我终于尝试制作一个虚拟脚本文件并运行它,发现同样的错误

我认为 BASH 存在一些问题。有人可以帮我解决问题吗?

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

由于我是 linux 上的新手,任何帮助将不胜感激

4

4 回答 4

3

.(当前目录)可能不在您的路径上。尝试./example.shbash example.sh。您也可以添加.到您的PATH环境变量中,但这通常是不受欢迎的。

于 2012-08-01T04:59:00.283 回答
3

bash 在您的$PATH. 显然当前目录 ,.不在您的$PATH. (这是一件好事;拥有.你的东西$PATH是不安全的。)

您需要指定目录名称。只需输入:

./example.sh

顺便说一句,做:

sudo chmod 777 example.sh

是两种矫枉过正。首先,您不需要使用sudo; sudo 在您实际需要时使用。大概是您的个人帐户拥有该文件,因此您可以直接使用chmod

第二,777任性了。它允许系统上的任何人读取、执行或修改 example.sh. (如果你是系统上唯一的人,这可能并不重要,但这仍然是一个坏习惯。)通常你应该使用755目录和需要可执行644的文件,以及不需要的文件可执行。

或者只是使用

chmod +x example.sh

设置执行权限(您的 umask 将防止权限设置太松散)。

于 2012-08-01T05:01:20.240 回答
1

您的 bash PATH 可能不包含.,请尝试通过键入以下命令运行它:

./example.sh

当您键入命令时,您的 shell 会搜索您的路径以尝试找到该命令,如果当前目录(例如.)不是路径的一部分,则不会找到您尝试运行的脚本。你必须明确地给它这个命令所在的路径。而且由于它在您的当前目录中,您只需./在命令前面添加即可。

于 2012-08-01T04:59:08.023 回答
0

首先确认bash路径检查bash使用的路径:

 which bash

如果你得到“/bin/bash”然后添加

#!/bin/bash 
...
...

或者 bash 脚本第一行的路径

于 2012-08-01T08:13:09.753 回答