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
export
pasar 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 agregasource
como un sinónimo más legible para él, pero no puede confiar en que esté disponible en sh. Por último, en. ./script
lugar de. script
si 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
.bashrc
o.profile
y lea sobre variables y subcapas . Laexport
declaració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