|
Prev: Help required:Awk Error
Next: Can I pass the output of some command to two or more commands without using a temporay file?
From: rodney.longhurst on 17 Apr 2008 23:33 Is it possible to safely maintain directory names with spaces in a csh path? This works; set path = ( /bin /home/space\ bin ) However if a later script tries to add to it; set path = ( $path /usr/bin ) then the real escaped space is lost, since the set command expands the $path variable (which is an array) into a flat space-separated string, then reconstructs it into an array. I know the env variable $PATH, which is colon-separated, could be used instead (since the csh keeps $path and $PATH in sync); setenv PATH "/bin:/home/space\ bin" setenv PATH "${PATH}:/usr/bin" but this just shifts the problem to directory names that contain colons (admittedly much less likely). Is there a reliable way to set the path to ensure the current contents are never mangled, or is this just a limitation of the csh?
From: Maxwell Lol on 18 Apr 2008 06:52 rodney.longhurst(a)gmail.com writes: > Is it possible to safely maintain directory names with spaces in a csh > path? This works; > > set path = ( /bin /home/space\ bin ) > > However if a later script tries to add to it; > > set path = ( $path /usr/bin ) You probably need to use set path = ( $path:q /usr/bin ) > Is there a reliable way to set the path to ensure the current contents > are never mangled, or is this just a limitation of the csh? It's one of many... :-)
From: rodney.longhurst on 20 Apr 2008 09:56
Maxwell Lol <nos...(a)com.invalid> wrote: > You probably need to use > setpath= ( $path:q /usr/bin ) Yep, that works perfectly. Thanks very much. |