【问题标题】:Trying to set up bash command尝试设置 bash 命令
【发布时间】:2010-08-18 03:21:32
【问题描述】:

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

当我直接执行脚本时,它们可以正常运行。

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

建议?

【问题讨论】:

  • 对符号链接尝试ls -l,看看它们是否设置正确。
  • 并检查'ls -lL' - 如果没有大写 L,您将看到链接指向的位置,但不一定在链接的远端没有任何内容。

标签: path symlink bash


【解决方案1】:

ls -l /usr/local/bin/foo 并查看您的符号链接实际上指向的位置。肯定是坏了。

如果没有,请尝试运行/usr/local/bin/foo。如果可行,那么尽管您在 OP 中说过,但您的 PATH 是错误的。

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

【讨论】:

    【解决方案2】:

    我找到了自己的答案...符号链接是由一个自动文件创建的,该文件正在输入我的密码。我也在使用 virtualenv,所以要让它工作,我必须激活 virtualenv 并位于包含创建符号链接的脚本的文件夹中。

    【讨论】:

    • 我恭敬地提出 /usr/local/bin 中的符号链接可能不应该取决于您是否在特定的虚拟环境中。
    【解决方案3】:

    我将命令安装在$HOME/bin 而不是/usr/local/bin,但这并不重要。正如 cmets 中所暗示的,一个问题是符号链接是否设置正确。

    • 检查 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

    如果这些都没有显示出问题,请向我们展示上述命令的结果。

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 2011-02-24
      • 2016-03-26
      • 1970-01-01
      • 2019-09-23
      • 2013-09-12
      • 2019-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多