2013-10-30 24 views
0

爲什麼這個命令會破壞搜索路徑?設置變量時加括號

PATH=($PATH:$HOME/bin) 

PATH顯示不變,但shell找不到命令。

它是在錯誤輸入了

PATH=$PATH:$HOME/bin 

PATH=$(echo $PATH:$HOME/bin) 

回答

2

使用括號可能混淆你創建磁盤陣列:

$ a=(x:y:z v:w:x) 
$ echo ${a[0]} 
x:y:z 
$ echo ${a[1]} 
v:w:x 

在你的情況,你有一個創建一個數組元素(整個路徑)。這不再被解釋爲搜索可執行文件的路徑。這個PATH必須是由冒號分隔的一串目錄,而不是一個數組。

+0

更多細節可以在這裏找到 - 一旦你知道是什麼問題。 :-) [鏈接] http://www.tutorialspoint.com/unix/unix-using-arrays.htm –

0

如果你想acheive PATH = $ PATH:$ HOME/bin中

嘗試PATH=(\$PATH:\$HOME/bin)