Configuración de variables de entorno con archivo .sh

Configuración de variables de entorno con archivo .sh

He creado el archivo env.sh cuyo contenido se encuentra a continuación

#!/bin/sh

export M2_HOME=/vagrant/tools/maven
export PATH=$PATH:$M2_HOME/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65
export ANT_HOME=/usr/local/apache-ant-1.9.7
export MAVEN_HOME=$M2_HOME

pero la ejecución de este archivo sh no da como resultado la exportación de variables env. Tienes que ejecutar manualmente cada línea para exportarlas. Por favor ayuda

Respuesta1

Necesita source( .) el archivo, no ejecutar:

. env.sh

Cuando ejecuta el script, se ejecuta en un subshell y todos los parámetros exportados quedarán fuera de alcance una vez que salga el (sub)shell, sin afectar al shell principal.

Cuando sourcelo haga, los parámetros estarán disponibles en la sesión de llamada. Y también en los procesos del niño a medida que exportlos procesa.


Tenga en cuenta que el shell del sistema predeterminado ( sh) para Ubuntu es dash, no bashy gnome-terminalse genera bashcomo el shell interactivo. Mientras ejecuta, asegúrese de que el shebang sea correcto y deseado. Además, mientras sourcehaces -, no es necesario el tinglado, puedes dejarlo.

información relacionada