farmer-logo.gif (14959 bytes) cshell-logo.gif (19625 bytes)
ch-4.gif (10100 bytes)
main-b.gif (271 bytes)
 

 

4-2-1 path 指令搜尋路徑變數

set path = (/usr/ucb /bin /usr/bin ~/bin .)

paht 變數所定義的路徑次序便是執行指令時搜尋次序的依據。如果不自行設定,則大部份的 UNIX 系統均自行設定為(. /usr/ucb /bin /usr/bin)。其中符號“.”代表“目前所在的工作目錄(current directory)”。將目前所在的工作目錄放在其他目錄之前所得到的結果是,在目前所在的工作目錄下所有可執行的程式優先執行。此法乃用以解決自行開發的程式名稱與系統指令相同時,在執行上的問題。但對指令搜尋執行的效率而言,並不理想。因為對你每次執行的系統指令都會先對目前的工作目錄作搜尋再往 /usr/ucb 等目錄去尋找系統指令。這種設定次序對整體指令的使用效率是較差的。在自行設定時請注意此點,儘量將你的路徑安排的有效率一點。

在設定這個變數時,有些軟體或者是使用者,可能會因為某種理由而採用變數 path 加到自己本身的設定中。如果你在“.cshrc”檔案中,發現有類似下面你所看見的 path 設定方式,則請你特別小心:

set path = ( $path ~/project )

這樣的設定方式在語法上是沒有問題的。設定變數 path 的路徑是原變數的內容加上一個新的路徑“~/project”。這樣的設定方式或許在設定上相當好用,但在實際的運用上卻也有可能造成非常不良的連鎖效應出現。比如,你修改“.cshrc”檔案之後要使用內建指令 source 做更新設定的這個動作來說,原變數的內容會再一次被帶入設定的中,造成路徑“~/project”重復設定,影響到指令搜尋路徑的精簡。如果你重複做上許多次,後果可就不麼美妙了。這種設定的影響在使用上請小心。


mail.gif (2925 bytes)

b-line.gif (2092 bytes)