无法使用 ./ 执行脚本

无法使用 ./ 执行脚本

在我的工作场所,我们通常使用以下语法在 Linux 服务器中执行脚本:

./<whatever absolute path to script>/<script>

显然,如果使用正确的用户执行并且具有正确的权限,这通常会执行脚本。

现在我不知道服务器最近发生了什么变化,SA 管理升级、补丁和修复,通常根本不提供任何通知。问题是,最近如果我们尝试使用相同的语法执行脚本,它们将由于“找不到脚本”而无法运行。

我们的解决方法是使用以下有效的语法:

bash /<whatever absolute path to script>/<script>

我不是 SA 或 unix 服务器配置方面的专家,所以有人知道为什么会发生这种情况以及如何修复它吗?

提前致谢。

答案1

正如您在示例中提到的绝对路径,您应该使用命令

/<whatever absolute path to script>/<script>

w/oa 点,因为在您的情况下意味着搜索相对路径(点是当前目录)。仅当当前目录是/(root)时,使用点才有效

还要检查权限和执行标志。 Sor 脚本您也需要设置读取权限。

答案2

ls -l您可以通过在脚本所在的目录中运行来确定您的脚本是否“可执行” 。第一列的输出显示所有者、组或其他人的“linux 权限”。

您将看到“x”,表示可执行位已设置。

-rwxr-xr-x

本示例中有三个,因此文件的所有者、拥有组中的任何人以及其他任何人都可以执行该文件。我发现这个关于权限位的博客条目:https://www.linuxfoundation.org/blog/blog/classic-sysadmin-understanding-linux-file-permissions

答案3

  • 确保您的脚本可执行:
    chmod +x <name of the script>
    
  • PATH如果您想从任何地方执行它,请将其放置在您的位置。要找到您的路径,请运行:
    echo $PATH
    

相关内容