Linux 中 $path 变量中的目录路径中有空格

Linux 中 $path 变量中的目录路径中有空格

我正在使用 Red Hat Enterprise 5.3,并尝试将目录添加到 $path 变量,但其中有空格。$path 变量以空格分隔,那么如何区分绝对路径中的空格和分隔路径的空格?

答案1

$PATH 不是用冒号分隔的吗?无论如何,您需要使用 转义空格\。如果您想要一个名为 的目录my dir,您可以执行以下操作:

PATH=/bin /usr/bin /home/user/my\ dir /sbin

此路径仅作为示例,请勿逐字复制。

答案2

看起来 Brad 使用的是 csh 或 tcsh——这些 shell 都有 $path 和 $PATH。当您更改其中一个时,shell 会保留这两个。

将带空格的目录添加到$path的方法:

% echo $path
/opt/local/bin /opt/local/sbin /usr/local/bin /usr/local/sbin /Users/dharris/bin
% echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Users/dharris/bin

% set path = ($path /tmp/directory\ with\ spaces)

% echo $path
/opt/local/bin /opt/local/sbin /usr/local/bin /usr/local/sbin /Users/dharris/bin /tmp/directory with spaces
% echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Users/dharris/bin:/tmp/directory with spaces

答案3

就我的情况(使用 csh)而言,$PATH 变量弄乱了它并阻止了 $path 工作,因此这里有一个解决方法:

set savePATH = $PATH
set path = ($path /usr/my\ dir/has\ spaces\ in\ it)
set PATH = ($savePATH)

警告:带有空格的路径必须最后添加,如果在此之后向路径添加非空格路径,它将自动更新 $PATH 并再次破坏它。

相关内容