试图设置bash命令

时间:2010-08-18 03:21:33

标签: path symlink bash

我试图在Mac上的终端中设置bash命令。

当我直接执行脚本时脚本正确运行。

我在/ usr / local / bin /中设置符号链接到脚本的当前位置。当我尝试从符号链接中运行它时,它不起作用。我不相信问题是$ PATH,因为pip,git,ipython都存在于这个位置。当我编辑$ PATH设置时,这些失败。

建议?

3 个答案:

答案 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安装我的命令,但这并不重要。正如评论中所暗示的,一个问题是符号链接是否设置正确。

  • 检查shell认为您应该执行的命令:which command
  • 检查/usr/local/bin中的链接是否指向正确的文件(并具有执行权限等):
    • ls -l /usr/local/bin/command
    • ls -lL /usr/local/bin/command
  • 检查shebang中的解释器路径是否正确:
    • file /usr/local/bin/command
  • 检查/usr/local/bin实际上是否在您的路径上:echo $PATH

如果没有出现任何问题,请告诉我们上述命令的结果。