He escrito el siguiente script para establecer algunas variables de entorno cuando sea necesario.
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Debajo del comando y los resultados que puedo ver en mi terminal: el script se ejecuta, pero las variables no se establecen al final.
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
Que pasa Gracias por adelantado. Mirko
fuente

exportpasar variables a subcapas, una subcapa es una copia de su shell actual, incluidas las variables y funciones, etc. Las variables exportadas se copian a los nuevos procesos generados desde el shell, independientemente de que ese proceso sea otro shell o no. En segundo lugar,.es el comando POSIX para el abastecimiento. Bash agregasourcecomo un sinónimo más legible para él, pero no puede confiar en que esté disponible en sh. Por último, en. ./scriptlugar de. scriptsi quieres evitar sorpresas. mywiki.wooledge.org/BashFAQ/060Cuando ejecuta un script, se ejecuta en una subshell. Las variables solo son válidas dentro del contexto de esa subshell. Póngalos en su
.bashrco.profiley lea sobre variables y subcapas . Laexportdeclaración funciona con jerarquía inferior (shell actual y todos sus subcapas) no como en su ejemplo.Alternativamente (si realmente desea que el script afecte el entorno de su shell actual) ejecútelo como:
Eso hace que se ejecute en su shell actual, pero tampoco pasará variables a la jerarquía.
fuente
A menudo quiero establecer una variable de entorno sin problemas.
Esto es lo que agrego a mi .bashrc para implementar esta conveniencia.
fuente
Puedes probar algo como esto
fuente