【问题标题】:Issue with setting $PATH directories设置 $PATH 目录的问题
【发布时间】:2012-10-10 21:40:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: macos bash environment-variables


    【解决方案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"
    

    【讨论】:

    • 哎呀,第二个问题 bin/sbin 在我写我的实际导出是正确的问题时是一个错误(我认为!)这是 $PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/mysql/bin: No such file or directory 的内容我也知道这是一个无空间操作,但问题可能来自。 $PATH 也可以通过编辑 .bash_profile 来编辑
    【解决方案2】:

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

    如果您想永久更改,请将您的 PATH 写在 ~/.bash_profile 中。

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

    【讨论】:

      【解决方案3】:

      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

      把左边的$去掉。

      【讨论】:

        猜你喜欢
        • 2016-10-15
        • 2020-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多