¿Cómo agrego variables de entorno?

Estoy ejecutando Ubuntu 11.04. Uso la terminal para iniciar una sesión de bash y quiero agregar una variable de entorno:

$r@hajt:~$ env THEVAR=/example

Pero no está funcionando. Muestra todas las variables con THEVAR siendo la última, pero otra llamada a env no se muestra THEVAR ya- env | grep THEVAR no devuelve nada.

Del mismo modo, los scripts con export (export THEVAR=/example) u otras asignaciones de variables (THEVAR=/example) no agregue la variable de entorno.

Sé que estoy haciendo algo mal, sé que debería ser algo simple, pero no puedo encontrar qué.

ACTUALIZACIÓN: El verdadero significado de mi pregunta fue esta: https://stackoverflow.com/questions/496702/can-a-shell-script-set-environment-variables-of-the-calling-shell

(De todos modos, elegiré la respuesta más votada y dejaré el título editado ,eso no era lo que estaba preguntando)

env ejecuta un programa en un entorno modificado y, a continuación, descarta todos los cambios.

Para establecer una variable solo para la cáscara actual:

VARNAME="my value"

Para configurarlo para el shell actual y todos los procesos iniciado desde el shell actual:

export VARNAME="my value"      # shorter, less portable version

Para configurarlo permanente para todas las sesiones futuras de bash, agregue dicha línea a su .bashrc archiva en tu $HOME directorio.

Para configurarlo de forma permanente, y en todo el sistema (todos los usuarios, todos los procesos) agregue la variable set en /etc / environment:

sudo -H gedit /etc/environment

Este archivo solo acepta asignaciones de variables como:

VARNAME="my value"

No utilice el export haga clic aquí.

Debe cerrar la sesión del usuario actual y volver a iniciar sesión para que se realicen los cambios en las variables de entorno.

Para establecer una variable de entorno una vez, utilice la export comando en el símbolo del sistema, no en un script de shell:

$ export THEVAR=/example

La variable se establecerá durante el resto de la sesión de shell o hasta que se desactive.

Para establecer una variable de entorno cada vez, utilice el export comando en el .bashrc archivo (o el archivo de inicialización apropiado para su shell).

Para establecer una variable de entorno desde un script, utilice la export comando en el script y, a continuación, source script. Si ejecuta el script, no funcionará.

Para obtener una explicación de la diferencia entre el abastecimiento y la ejecución, consulte esta respuesta: https://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script-and-sourcing-a-bash-script/176788#176788

Para agregar permanentemente una nueva variable de entorno en Ubuntu (probada solo en 14.04), siga los siguientes pasos:

  1. Abra una terminal (pulsando CtrlAltT)
  2. sudo -H gedit /etc/environment
  3. Escriba su contraseña
  4. Edite el archivo de texto que acaba de abrir:
    por ejemplo, si desea agregar FOO=bar, entonces solo escribe FOO=bar en una nueva línea
  5. Guárdalo
  6. Una vez guardado, cierre la sesión y vuelva a iniciar sesión.
  7. Se realizan los cambios necesarios.

Para que los cambios de environment/var persistan después de que el script se haya completado, debe usarsource ./script.sh o la notación abreviada para fuente,".", como . ./script.sh

Source ejecutará los comandos del script como si los hubiera escrito... por lo tanto, cambia algunos aspectos del guión, como la salida... entonces, si su script verifica algo y decide salir si es falso, por ejemplo, mediante una llamada exit 0, terminará su sesión actual de terminal / shell.

Sé que es bastante tarde, pero si desea agregar una variable de entorno para todos los usuarios ( por ejemplo, el uso de JAVA), puede hacer lo siguiente:

1) Abierto /etc/bash.bashrc usando nano (puedes usar cualquier editor, no prefiero VIM, ya que es el peor en lo que respecta a la facilidad de uso, nada personal).

2) Anexar al archivo:

export VAR=path export PATH=$PATH:/bin3) (Mejor si puede rebotar el cuadro), o simplemente abra una nueva sesión SSH y confirme con el comando `env'.

Pero si desea que cada usuario tenga una configuración separada para esto, debe hacer un cambio (con script) a .bashrc archivar bajo ~/.bashrc (o /home/$USER/ si es nuevo en los sistemas Linux)

Si está haciendo cosas a través de un script, una forma fácil de establecer la variable de entorno de forma permanente es poner debajo de la declaración en su script,

if [[ ! -d "$MyVar" ]]; then     export MyVar="abc"    echo 'export MyVar="abc"' >> ~/.bashrcfi

Si necesita evaluar expresiones como pwd, puede usar esto, por ejemplo,

echo "export EIGEN_ROOT=\"$(pwd)/eigen\"" >> ~/.bashrc

Si está utilizando Ubuntu o cualquier sistema basado en Unix, exporte las variables en el ~/.bashrc file. Es un archivo oculto y puede acceder a él a través de la terminal o mostrando los archivos ocultos en el sistema de archivos.

A continuación, edite el archivo y configure export THEVAR=/example ahí, guarda y listo.

Si está implementando una aplicación JAVA utilizando TOMCAT, puede establecer variables de entorno de la siguiente manera:

1.sudo su y cd a /var / lib / tomcat8 / bin/ (o cualquiera que sea la ruta de la papelera de tomcat)

  1. toque setenv.sh (si no existe), si el archivo presente ya lo hace 'vi setenv.sh"

  2. chmod 777 setenv.sh (hacer que el archivo sea ejecutable)

  3. vi setenv.sh y establezca la siguiente línea en setenv.shexport clave=valor

  4. sudo systemctl reinicia tomcat.Servicio

En su archivo java, puede usar el siguiente código para verificar si la variable está configurada

private static void printEnv() {    System.out.println("******************************Environment Vars*****************************");    Map<String, String> enviorntmentVars = System.getenv();    enviorntmentVars.entrySet().forEach(System.out::println);    System.out.println("******************************system Vars*****************************");    Properties enviorntmentProperties = System.getProperties();    enviorntmentVars.entrySet().forEach(System.out::println);}

El otro es sobre variables globales, este no agrega tal limitación. Lo mantendría separado.

https://help.ubuntu.com/community/EnvironmentVariables

Cuando se define / exporta en .bashrc, funciona correctamente.

¿Qué tal THEVAR= / example?

posible duplicado de Google Earth y variable variable de entorno del NAVEGADOR