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
的完整绝对路径。
我有一个 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
的完整绝对路径。