无法让我的 bash 脚本可执行

  • 本文关键字:bash 脚本 可执行 bash
  • 更新时间 :
  • 英文 :


我的脚本learn-fork.sh如下,外加很多注释(一旦我让测试行工作,这些注释将被取消注释)

#!/bin/bash
echo "Running from ${0}"

除了该文件之外,我还有另一个文件在 Finder 中显示为 learn-fork(无扩展名),但在终端中显示为 learn-fork.sh-e

以下是这些文件的权限。

-rwxr-xr-x  1 TuzsNewMacBook  admin       250 Jan  1 18:25 learn-fork.sh
-rwxr-xr-x@ 1 TuzsNewMacBook  admin       307 Jan  1 13:38 learn-fork.sh-e

运行learn-fork.sh有效。运行learn-fork-bash: learn-fork: command not found .

如果要使用命令 learn-fork 调用它,请将文件命名为 learn-fork

正是如此,没有任何扩展。不是learn-fork.sh,也不是learn-fork.sh-e,或者别的什么——只是learn-fork

将文件扩展名视为不属于名称一部分的独立内容是一种 Windows 主义;UNIX-y的人(和UNIX-y操作系统)不相信它。因此,如果你想要一个名为 foo 的命令,则关联的可执行文件或脚本必须命名为 foo ,而不是 foo.anything

并且必须将其标记为可执行文件,并使用正确的路径引用调用chmod +x foo AND,无论是./foo还是/path/to/foo,或者/path/to包含在 PATH 变量中,即 export PATH="/path/to:$PATH" .

最新更新