Supongamos que quiero exportar una ruta, digamos FOOBAR
y hacer que los cambios no solo sean efectivos de inmediato y en todas partes, sino también permanentes. Mi objetivo es tener una lista de comandos que pueden ingresarse manualmente en una sesión activa de Shell, así como ejecutarse desde un script de Shell (que a su vez podría ejecutarse a través del Shell o un administrador de archivos GUI, etc.).
Los procesos antiguos no necesitan estar al tanto de ningún cambio.
Esto es lo que quiero que le pase a FOOBAR
:
Mi enfoque actual es exportar el valor como un comando set a _.profile
_ y _.bashrc
_:
_echo "export FOOBAR=$FOOBAR:$HOME/example/" >> $HOME/.profile;
echo "export FOOBAR=$FOOBAR:$HOME/example/" >> $HOME/.bashrc;
source $HOME/.profile;
_
¿Cómo se puede mejorar esto en términos de:
~/.profile
o .bashrc
. No ambas, ya que /.bashrc
está cargado -desde- ~/.profile
.~/.bashrc
y no /etc/profile
, ~/.bash_profile
, ~/.bash_login
o ~/.profile
así que si eso es una preocupación ~/.profile
es no va a ser usado.$BASH_ENV
. No he encontrado lo que son cargas pero ~/.bashrc
debería ser una de ellas.Con respecto a su primer punto de viñeta:
Con respecto a su segundo punto de viñeta:
/etc/profile
o /etc/environment
. / etc/environment es el lugar correcto para las variables de entorno de todo el sistema. Y también: esto descarta ~/.profile
.Con respecto a su 3er punto:
/etc/environment
no requiere reiniciar. Requiere un reinicio de sesión. Y debe hacerse con un reinicio de sesión; puede obtenerlo de nuevo, pero eso solo se aplica a su sesión y a lo que se inicia después de obtenerlo. No para procesos que ya se están ejecutando.
Sin embargo
. /etc/environment
es un método para recargar todas las variables. Pero de nuevo: esto no los restablece para los procesos que se ejecutan actualmente. Solo para el Shell actual y los procesos recién iniciados.
Con respecto a la cuarta, quinta y sexta viñeta:
El único problema que puedo ver es que podría volverse loco. Si lo agrega a ~/.bashrc
y obtiene ese valor 10, 20 veces, su variable se inundará con las mismas partes.
Y no y no. Sin riesgos de seguridad.