OS X Shell 脚本可执行文件不工作

OS X Shell Script executable not working

我有一个 shell 脚本,我正在尝试使其可执行。

这是脚本:(它还没有做任何有用的事情。只是试图让它正确地达到 运行)

#!/bin/sh

function rip_it_good(){
    echo "function called"
}

rip_it_good

首先我让它可执行:

$ chmod +x ripitgood.sh

到目前为止,还不错。如果我 运行 从终端在本地目录

$ ./ripitgood.sh

它 运行 很好,我得到 "function called" 的正确输出。

接下来我 link 从 /usr/local/bin

编辑了它
$ sudo ln -s ripitgood.sh /usr/local/bin/ripitgood

但是如果我尝试 运行 它使用新创建的 link:

$ ripitgood

我收到一个错误

"-bash:ripitgood:找不到命令"

我检查过,是的 /usr/local/bin 在我的路径中

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin

我试过直接运行它

$ /usr/local/bin/ripitgood
-bash: /usr/local/bin/ripitgood: No such file or directory

所以,我打开 finder 并查看,是的, link "ripitgood" 存在于 /usr/local/bin 目录

我仍然可以从它所在的目录中 运行 它:

./ripitgood.sh
function called

我错过了什么?

问题在于您如何创建符号链接:

sudo ln -s ripitgood.sh /usr/local/bin/ripitgood

符号链接字面意思是 ripitgood.sh,但 /usr/local/bin 中没有 ripitgood.sh。尝试像这样创建符号链接:

sudo ln -s $(pwd)/ripitgood.sh /usr/local/bin/ripitgood

这将在符号链接中使用 ripitgood.sh 的完整绝对路径。