2011-03-07 114 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