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 source
lo 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 export
los procesa.
Tenga en cuenta que el shell del sistema predeterminado ( sh
) para Ubuntu es dash
, no bash
y gnome-terminal
se genera bash
como el shell interactivo. Mientras ejecuta, asegúrese de que el shebang sea correcto y deseado. Además, mientras source
haces -, no es necesario el tinglado, puedes dejarlo.