OS X Shell脚本可执行文件无法正常工作

时间:2015-05-03 01:20:23

标签: macos bash terminal symlink

我有一个我正在尝试制作可执行文件的shell脚本。

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

#!/bin/sh

function rip_it_good(){
    echo "function called"
}

rip_it_good

首先我把它变为可执行文件:

$ chmod +x ripitgood.sh

到目前为止,这么好。如果我从本地目录中的终端运行它

$ ./ripitgood.sh

它运行得很好,我得到了“函数调用”的正确输出。

接下来我从/ usr / local / bin

链接到它
$ sudo ln -s ripitgood.sh /usr/local/bin/ripitgood

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

$ 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并检查了,是的,/ usr / local / bin目录中存在链接“ripitgood”

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

./ripitgood.sh
function called

我错过了什么?

1 个答案:

答案 0 :(得分:3)

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

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

符号链接的字面值为ripitgood.sh,但ripitgood.sh中没有/usr/local/bin。尝试创建符号链接,如下所示:

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

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