我试图在Mac上的终端中设置bash命令。
当我直接执行脚本时脚本正确运行。
我在/ usr / local / bin /中设置符号链接到脚本的当前位置。当我尝试从符号链接中运行它时,它不起作用。我不相信问题是$ PATH,因为pip,git,ipython都存在于这个位置。当我编辑$ PATH设置时,这些失败。
建议?
答案 0 :(得分:3)
ls -l /usr/local/bin/foo
并查看您的符号链接实际指向的位置。 Betcha它坏了。
如果没有,请尝试运行/usr/local/bin/foo
。如果这有效,那么你的PATH是错的,尽管你在OP中说过。
导致此行为的唯一另一件事是脚本正在读取$0
(其自己的名称已执行)。使用符号链接,它将具有不同的值。
答案 1 :(得分:0)
我找到了自己的答案......符号链接是由一个自动文件创建的,这个文件是我的pwd。我也使用virtualenv,所以为了让它工作,我必须激活virtualenv并在具有创建符号链接的脚本的文件夹中。
答案 2 :(得分:0)
我在$HOME/bin
而不是/usr/local/bin
安装我的命令,但这并不重要。正如评论中所暗示的,一个问题是符号链接是否设置正确。
which command
/usr/local/bin
中的链接是否指向正确的文件(并具有执行权限等):
ls -l /usr/local/bin/command
ls -lL /usr/local/bin/command
file /usr/local/bin/command
/usr/local/bin
实际上是否在您的路径上:echo $PATH
如果没有出现任何问题,请告诉我们上述命令的结果。