2011-03-07 121 views
6

我在Linux中使用tcsh終端。在另一端我通常使用我設置的路徑,一些許可文件如下:

export PATH="$PATH:$MODEL_TECH" 

tcsh外殼不承認這個命令,所以我嘗試了以下內容:

setenv PATH "$PATH:$MODEL_TECH" 
    set PATH "$PATH:$MODEL_TECH" 
    setenv PATH=("$PATH:$MODEL_TECH") 

但後來我總是得到出現以下錯誤:

Bad : modifier in $ ($).

如果有人能夠快速幫我到這裏,也嘗試了很多組合,但沒有任何效果。

回答

5

=

setenv LICENSE_FILE "/usr/local/softwarex/license.dat" 

從手冊頁的tcsh:

setenv [name [value]] 

    Without arguments, prints the names and values of all environ‐ 
    ment variables. Given name, sets the environment variable name 
    to value or, without value, to the null string. 
2

嘗試setenv LICENSE_FILE /usr/local/softwarex/license.dat。這應該記錄在系統某個地方的man頁面中,因此請嘗試在man tcsh中進行讀取; tcsh是一個與bash和朋友非常不同的野獸。如果由於某種原因相關的man頁面在您的系統上不可用,這是我找到的第一個man tcsh

+0

很好,工作正常,但它似乎仍然存在問題,當我想設置一個路徑,我將它添加到我的文章。我得到一個不好的修飾語錯誤。 – reinhard 2011-03-07 11:28:41

+0

用於設置PATH的tcsh語法與sh變體不同。你有充分的理由使用tcsh?除非有非常令人信服的理由,否則繼續使用sh變體可能會更好。 – 2011-03-07 11:31:32

+0

不幸的是,我必須使用tcsh,因爲有些腳本只是在這個bash中運行... – reinhard 2011-03-07 11:32:58

5

將大括號周圍變量名:

setenv PATH ${PATH}:${foo} 

或使用這種形式:

set path = ($path $foo) 
+4

沒錯。 csh/tcsh使用':'字符作爲修飾符;例如'$ var:t'爲你提供'$ var'文件的根目錄(通過刪除'.whatever'擴展名)。如果你編寫'「$ PATH:$ MODEL_TECH」'shell認爲'$'是$ PATH修飾符的一部分(它不能識別)。花括號將名稱與以下「:」分開。 'set path = ...'形式設置相應的shell變量'$ path',它與環境變量'$ PATH'綁定。 'man tcsh'獲取更多信息。 – 2011-07-30 20:06:05

+0

雖然沒有說明,但明確的字符串也可以工作,例如'setenv PATH $ {PATH}:/ foo/bar' – 2013-07-19 07:53:12

0

在一個tcsh外殼的路徑或任何環境變量可以追加如下:

setenv PATH $PATH":$NEWPATH" 
-1

如果不起作用,請使用:

setenv PATH ${PATH}:/.../../../ 
+0

爲什麼你投下我的答案,是正確的答案!往下看 – katy 2015-05-28 08:19:31