Tcsh
tcsh 中的多行 PATH
受此執行緒公認答案的啟發,我試圖在 tcsh(版本 6.14.00)中複製類似的結構,但沒有運氣:
setenv new_PATH ( /some/path /some/other/path # Some comments /foo/path # Another group /bar/path $PATH) # Attach $PATH at the end in case we had previous declarations setenv PATH `sed -e '/^#/'d -e '/^$/'d << EOF | paste -d ":" -s $new_PATH`
我收到錯誤“
Too many ('s
”。我究竟做錯了什麼?
你可以這樣做:
set path = ( \ /this/dir \ \ # This is a comment \ \ /that/dir \ /another/dir \ )
另一種方法是從文件中讀取目錄名稱:
set path = () foreach dir (`/bin/cat path.txt`) set path = ( $path $dir ) end
請注意,我需要指定,
/bin/cat
因為我剛剛破壞了我的$PATH
.您可以替換
cat
為過濾掉註釋的內容(例如簡單的sed
– 或者更確切地說/bin/sed
– 命令)。這會對包含空格或其他有趣字元的目錄路徑產生問題,但無論如何您都應該盡量避免這些問題。