¿Cómo creo variables env independientes de sesión de terminal en OS 10.10?

Leí la respuesta de Mortimer aquí https://stackoverflow.com/questions/25385934/setting-environment-variables-via-launchd-conf-no-longer-works-in-os-x-yosemite y agregué este archivo en /Users/ MyName/Library/LaunchAgents llamado environment.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"     
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>my.startup</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>
    launchctl setenv GRADLE_HOME /Applications/gradle-2.0 
    launchctl setenv JAVA_HOME    
/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
    </string>

  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

Reinicié mi computadora portátil, abrí una terminal y ejecuté echo $GRADLE_HOME pero aún está en blanco. ¿Cómo configuro un env var que sea persistente durante las sesiones de terminal en Mac OS 10.10?

No entiendo muy bien las plists, ni launchd, y he evitado la 'actualización' de Yosemite, pero la carga útil de ProgramArgumentsparece divertida para mí: si la cadena multilínea se pasa como argumento a "sh", ¿cómo va a saber eso? hay dos launchtctls para ser ejecutado?
tal vez no reinicié como pensaba; Apagué y encendí, ahora funciona.
¿Qué sucede si elimina la línea launchctl setenv GRADLE_HOME /Applications/gradle-2.0(lo que significa que solo se pasa un comando a sh)?
Publique eso como respuesta: podría ser útil para alguien que no lo haya hecho correctamente como lo hizo usted.

Respuestas (1)

apague y vuelva a encender la computadora. abra la terminal y escriba echo $ENV_VAR y debería ver el valor que definió.