2011-03-07 14 views
6

Estoy usando el terminal tcsh en Linux. En el otro terminal que normalmente solía fijo el camino a algún archivo de licencia de la siguiente manera:

export PATH="$PATH:$MODEL_TECH" 

Tcsh cáscara no reconoce este comando, así que trataron los siguientes:

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

Pero entonces siempre me dan el siguiente error:

Bad : modifier in $ ($).

Lo que también es genial si alguien pudiera ayudarme aquí rápidamente, intenté algunas combinaciones pero nada funciona.

Respuesta

5

Drop the =

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

Desde la página del manual de 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

Trate setenv LICENSE_FILE /usr/local/softwarex/license.dat. Esto debe documentarse en la página man en algún lugar de su sistema, así que intente leer en man tcsh; tcsh es una bestia muy diferente de bash y amigos. Si la página relevante man no está disponible en su sistema por algún motivo, aquí está la primera man tcsh que encontré.

+0

Genial, funciona bien pero parece que todavía hay problemas cuando quiero establecer un camino, lo agregué a mi publicación. Obtengo un mal error de modificación. – reinhard

+0

tcsh La sintaxis para establecer la RUTA es diferente de las variantes sh. ¿Tiene una buena razón para usar tcsh? A menos que exista una razón * muy * convincente, probablemente sea mejor continuar usando una variante sh. –

+0

Desafortunadamente, tengo que usar tcsh ya que un script se está ejecutando en este bash ... – reinhard

5

Deja llaves alrededor de los nombres de las variables:

setenv PATH ${PATH}:${foo} 

o utilizar esta forma:

set path = ($path $foo) 
+4

Derecha. csh/tcsh usa el caracter ':' para modificadores; por ejemplo '$ var: t' le da la raíz del nombre de archivo' $ var' (eliminando la extensión '.whatever'). Si escribe '" $ PATH: $ MODEL_TECH "' el shell piensa que '$' es parte de un modificador para $ PATH (que no reconoce). Las llaves juntas separan el nombre del siguiente '':''. El formulario 'set path = ...' establece la variable de shell correspondiente '$ path', que está vinculada a la variable de entorno' $ PATH'. 'man tcsh' para más información. –

+0

Aunque no se indique, una cadena explícita también funcionará, p. 'setenv PATH $ {PATH}:/foo/bar' –

0

En un tcsh bombardear la ruta o cualquier variable de entorno puede ser anexado como a continuación:

setenv PATH $PATH":$NEWPATH" 
-1

Si no funciona, utilice esto:

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

por qué vota mi respuesta, ¡es la respuesta correcta! ver abajo – katy