正如在这里看到的,这样做echo $PATH
给了我完整的路径,但这样做只$PATH
给出了一个不完整的版本,看起来它没有在某处被正确转义:
然而,当我查看我的配置文件时,与 PATH 相关的唯一行似乎只有:
PATH=$PATH
...在.bashrc
,并且...
export PATH=usr/local/sbin:/usr/sbin:$PATH
export PATH=/sbin:$PATH
export PATH=/cygdrive/b/users/me/desktop:$PATH
...in .bash_profile
。在我看来,这两种格式都正确,所以我不确定这里发生了什么。还有人能解释一下吗?
答案1
(我假设您从users/
和之间删除了您的用户名/desktop
。现在看起来有几个空格,但实际上那里没有空格。)
当您调用 sole 时$PATH
,其中的第一个空格将bash
解释为命令的内容与其第一个参数分开。No such file or directory
指的是“命令”。
第一个空格在 中Program Files
,因此“命令”以 结尾Program
。它失败,因为没有这样的文件。
答案2
PATH 是一个变量(shell 使用它通过查看其每个目录来尝试定位程序。)
当您运行 echo $PATH 时,您将显示它的内容。
当您运行 $PATH 时,您正在尝试运行变量中包含的命令。由于这是一个目录列表,因此它不是有效的命令,因此会产生错误。