Alterar la variable $ path de zsh en un script que se debe obtener

StackOverflow https://stackoverflow.com/questions/1208831

  •  05-07-2019
  •  | 
  •  

Pregunta

He heredado un script zsh que configura un grupo de variables de entorno para algunas simulaciones. Quiere editar la variable $ path para que se puedan encontrar algunos scripts de Perl:

typeset -U path
path=( ${SIMENV_BIN} $path )

Sin embargo, cuando obtengo el script ( source setup.source ), la variable $ path permanece intacta. Si copie estas líneas en el indicador de comando, do actualizar $ ruta. Si rocío 'echo' en el script y lo obtengo de nuevo, el comando de composición tipográfica parece borrar la variable $ path.

¿A alguien le importaría explicarme qué está pasando y cómo puedo solucionarlo?

¿Fue útil?

Solución

De forma predeterminada, el comando de composición tipográfica crea una nueva variable con el nombre suministrado que es local a la función actual, por lo que los cambios en esa variable se perderán cuando la función regrese. Agregue la opción -g :

typeset -gU path

Esto evitará la localización de la variable.

Otros consejos

Creo que es posible que necesites usar .zshenv ya que se encuentra en todas las invocaciones del shell.

http://zsh.sunsite.dk/Contrib/startup/std/zshenv

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top