Path 正在尝试设置bash命令

Path 正在尝试设置bash命令,path,symlink,bash,Path,Symlink,Bash,我试图在Mac上的终端中设置bash命令 当我直接执行脚本时,脚本运行正常 我在/usr/local/bin/中设置了指向脚本当前位置的符号链接。当我试图运行它的符号链接,它不工作。我认为问题不在于$PATH,因为pip、git和ipython都存在于这个位置。当我编辑$PATH设置时,这些设置失败 建议?ls-l/usr/local/bin/foo并查看符号链接的实际指向。没错,它坏了 如果没有,请尝试运行/usr/local/bin/foo。如果这行得通,那就是你的道路错了,不管你在OP里说

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

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

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


建议?

ls-l/usr/local/bin/foo
并查看符号链接的实际指向。没错,它坏了

如果没有,请尝试运行
/usr/local/bin/foo
。如果这行得通,那就是你的道路错了,不管你在OP里说了什么


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

ls-l/usr/local/bin/foo
并查看符号链接实际指向的位置。没错,它坏了

如果没有,请尝试运行
/usr/local/bin/foo
。如果这行得通,那就是你的道路错了,不管你在OP里说了什么


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

我找到了自己的答案。。。这些符号链接是由一个自动文件创建的,该文件正在与我的pwd通信。我也在使用virtualenv,所以为了让它工作,我必须激活virtualenv并将其放在包含创建符号链接的脚本的文件夹中

我找到了自己的答案。。。这些符号链接是由一个自动文件创建的,该文件正在与我的pwd通信。我也在使用virtualenv,所以为了让它工作,我必须激活virtualenv并将其放在包含创建符号链接的脚本的文件夹中

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

  • 检查shell认为应该执行的命令:
    哪个命令
  • 检查
    /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

如果没有任何问题,请向我们显示上述命令的结果。

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

  • 检查shell认为应该执行的命令:
    哪个命令
  • 检查
    /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

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

尝试对符号链接使用
ls-l
,查看它们是否设置正确。并选中“
ls-lL
”—不带大写字母l,您将看到链接指向何处,但不一定在链接的远端没有任何内容。请尝试对符号链接执行
ls-l
,以查看它们是否设置正确。并检查“
ls-lL
”-不带大写字母l,您将看到链接指向的位置,但不一定在链接的远端什么都没有。我恭敬地说,/usr/local/bin中的符号链接可能不应取决于您是否处于特定的虚拟环境中。我恭敬地说,/usr/local/bin中的符号链接可能不应取决于您是否处于虚拟环境中特定的虚拟环境。