我的脚本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"
.