无法使我的bash脚本可执行

时间:2019-01-01 19:05:14

标签: 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

1 个答案:

答案 0 :(得分:3)

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

是的,没有任何扩展名。不是learn-fork.shlearn-fork.sh-e或其他任何东西-只是learn-fork

将文件扩展名视为不是名称真正组成部分的分离是Windows风格的; UNIX-y的人(和UNIX-y的操作系统)不相信它。因此,如果要使用名为foo的命令,则关联的可执行文件或脚本必须命名为foo,而不是foo.anything

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