设置$ PATH目录时出现问题

时间:2012-10-20 12:24:15

标签: macos bash environment-variables

由于某些奇怪的原因,我的$PATH变量出现“没有此类文件或目录”错误。我尝试使用export编辑我的路径,将其从原来的更改为从单个目录路径到原始路径的每个排列。

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

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

3 个答案:

答案 0 :(得分:1)

我不确定您 使用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"

答案 1 :(得分:1)

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

在左侧丢失$。

答案 2 :(得分:0)

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

如果要永久更改PATH,请将~/.bash_profile写在{{1}}内。

要进行此修改,您必须关闭当前终端并重新打开它。