下面是我的脚本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
。
答案 0 :(得分:3)
如果要使用命令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
将其标记为可执行文件,并使用正确的路径引用(./foo
或/path/to/foo
进行调用,或者在PATH变量中包含/path/to
的情况下,即export PATH="/path/to:$PATH"
。