Speicherplatz im Verzeichnispfad in $ path Variable in Linux

3923
Brad

Ich verwende Red Hat Enterprise 5.3 und versuche, meiner $ path-Variablen ein Verzeichnis hinzuzufügen, aber es enthält Leerzeichen. Die $ path-Variable ist durch Leerzeichen begrenzt. Wie unterscheide ich also ein Leerzeichen in einem absoluten Pfad von einem Leerzeichen, das die Pfade trennt?

0
Ich bin froh, dass dies mit "tcsh" markiert wurde, aber Sie sollten explizit im Body (oder der Überschrift oder in beiden) die Shell erwähnen, die Sie verwenden quack quixote vor 14 Jahren 0
Einverstanden. Ich habe den tcsh-Tag hinzugefügt, aber das war meine Spekulation. Brad - habe ich richtig geraten? Doug Harris vor 14 Jahren 0

3 Antworten auf die Frage

2
Javier

Ist $ PATH nicht durch Doppelpunkt getrennt? Jedenfalls müssen Sie die Leerzeichen mit entziehen \. Wenn Sie ein Verzeichnis my diraufrufen möchten, führen Sie Folgendes aus:

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

Dieser Pfad ist nur ein Beispiel. Kopieren Sie ihn nicht wörtlich.

1
Doug Harris

Es sieht so aus, als würde Brad csh oder tcsh verwenden - diese Shells haben sowohl $ path als auch $ PATH. Die Shell behält beides bei, wenn Sie die eine ändern.

So fügen Sie das Verzeichnis mit Leerzeichen zu $ ​​path hinzu:

% 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 funktioniert so, wie Sie es zeigen, aber wenn ich $ PATH wiederhole, gibt es ein: anstelle eines Leerzeichens in jedem Feld des Pfads. Brad vor 14 Jahren 0
Welche Shell benutzt du? Doug Harris vor 14 Jahren 0
1
Brad

In meinem Fall (unter Verwendung von csh) hat die $ PATH-Variable dies durcheinander gebracht und verhindert, dass $ path funktioniert. Hier ist eine Problemumgehung:

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

Achtung: Pfade mit Leerzeichen müssen als letztes hinzugefügt werden. Wenn Sie anschließend einen Pfad ohne Leerzeichen hinzufügen, wird $ PATH automatisch aktualisiert und der Pfad wird erneut unterbrochen.

aber jetzt hast du das dir-with-spaces vom $ PATH gelassen; Sie sollten "savePATH = ($ PATH: / usr / mein \ dir / has \ spaces \ in \ it) setzen". quack quixote vor 14 Jahren 0