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


0

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


很高兴这被标记为“tcsh”,但你应该明确提到你正在使用的外壳(或标题或两者)
quack quixote

同意。我是添加了tcsh标签的人,但那是我的推测。布拉德 - 我猜对了吗?
Doug Harris

Answers:


2

是不是$ PATH冒号分隔?无论如何,你需要逃离空间 \。如果你想要一个名为的目录 my dir,你会做这样的事情:

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

这条路径只是一个例子,不要逐字复制。


1

看起来Brad正在使用csh或tcsh - 这些shell同时具有$ path和$ PATH。当你更改一个shell时,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

$ path在你显示时工作,但当我回显$ PATH时,有一个:而不是路径的每个空格中的空格。
Brad

你用的是哪个shell?
Doug Harris

1

在我的情况下(使用csh)$ PATH变量搞砸了并阻止$ path工作,所以这是一个解决方法:

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

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


但现在你已经离开了$ PATH的dir-with-spaces;你应该“设置savePATH =($ PATH:/ usr / my \ dir / has \ spaces \ in \ it)”。
quack quixote
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.