设置$PATH目录时出现问题



出于某种奇怪的原因,我的$PATH变量收到"没有这样的文件或目录"错误。我尝试使用export编辑我的路径,将其从原来的路径更改为从单个目录路径到原始目录路径的每个排列。

当有一个目录(例如,export PATH=/bin)时,我得到"/bin:是一个目录"。但是一旦我添加了多个目录(例如,export PATH=/bin:/sbin),我就会得到"没有这样的文件或目录"。

我很想知道这个问题的原因是什么!

RE;您的评论:

如果你有一行说:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/u‌sr/local/mysql/bin: No such file or directory

$PATH

也许靠它自己,或者你有$PATH=.... 也就是说,shell 正在尝试执行名为:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/u‌sr/local/mysql/bin

失去左侧的 $。

我不确定你使用的是export变体。根据以下成绩单,您几乎可以肯定那里有空格,您不应该这样做:

pax> PATH= /bin
bash: /bin: is a directory
pax> PATH= /bin/sbin
bash: /bin/sbin: No such file or directory

第一个原因是您在尝试运行该目录时将路径临时设置为空字符串。这是因为您可以执行以下操作:

pax> xyzzy=1
pax> echo $xyzzy
1
pax> xyzzy=2 bash -c 'echo $xyzzy'
2
pax> echo $xyzzy
1

换句话说,这是一种更改单个命令的环境变量的方法,并在命令完成后自动还原。

第二种情况仅仅是因为没有/bin/sbin目录。因此,它会抱怨您尝试运行目录之前检测到这一点。

bash中设置变量是没有空格的事情(除非目录名称中有空格,在这种情况下,它们应该被引号)。此外,它们需要被结肠隔开。因此,您正在寻找以下内容:

PATH=/bin
PATH=/bin:/sbin
PATH="/bin:/sbin:/directory with spaces in it:$HOME/bin"

export函数只会更改当前终端会话的变量。

如果您想永久更改PATH,请在~/.bash_profile内写下它。

要使此修改起作用,您必须关闭当前终端并重新打开它。

相关内容

  • 没有找到相关文章

最新更新