2010-08-18 91 views
0

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

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

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

对此提出建议?

+1

尝试'ls -l'对符号链接查看它们是否设置正确。 – 2010-08-18 03:26:40

+0

并检查“ls -lL” - 没有大写字母L,您会看到链接指向的位置,但不一定在链接的最末端没有任何内容。 – 2010-08-18 03:29:31

回答

3

ls -l /usr/local/bin/foo并看到你的符号链接是实际上是指向。 Betcha它坏了。如果不是,请尝试运行/usr/local/bin/foo。如果可行的话,尽管你在OP中说了什么,但这是你的PATH错误。

唯一会导致此行为的其他事情是脚本正在读取$0(它自己的名称与执行)。使用符号链接,这将有不同的价值。

0

我找到了我自己的答案......这个符号链接是由一个自动文件创建的,这个文件正在吞噬我的密码。我也在使用virtualenv,所以为了使它起作用,我必须激活virtualenv并将其放在具有创建符号链接的脚本的文件夹中。

+2

我恭敬地提交/ usr/local/bin中的符号链接应该不取决于您是否处于特定的虚拟环境中。 – 2010-08-18 03:35:34

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实际上是在你的PATH:echo $PATH

如果这些方法都显示了一个问题,告诉我们上面的命令的结果。