Este dilema se puede resolver de diversas maneras, pero nosotros te damos la que para nosotros es la respuesta más completa.
Solución:
bash tiene una sintaxis especial para establecer variables de entorno, mientras que fish usa una función incorporada. Sugeriría escribir su archivo .env así:
setenv VAR1 val1
setenv VAR2 val2
y luego definiendo setenv
apropiadamente en las respectivas conchas. En bash (por ejemplo, .bashrc):
function setenv() export "$1=$2";
. ~/.env
En pescado (por ejemplo, config.fish):
function setenv; set -gx $argv; end
source ~/.env
Tenga en cuenta que PATH requerirá un manejo especial, ya que es un array en pescado pero un colon delimitado string en bash. Si prefieres escribir setenv PATH "$HOME/bin:$PATH"
en .env, podrías escribir setenv de fish así:
function setenv
if [ $argv[1] = PATH ]
# Replace colons and spaces with newlines
set -gx PATH (echo $argv[2] | tr ': ' n)
else
set -gx $argv
end
end
Esto manejará mal los elementos en PATH que contengan espacios, dos puntos o saltos de línea.
La incomodidad en PATH se debe a la mezcla de cadenas delimitadas por dos puntos con true arreglos La forma preferida de agregar a PATH en fish es simplemente set PATH $PATH ~/bin
.
La mayoría de los sistemas Unix usan PAM. los pam_env
módulo lee un archivo muy parecido a su .env
.
En Linux, pam_env
lee un archivo del sistema /etc/environment
y un archivo de usuario ~/.pam_environment
. En OS X (y otros *BSD, que también usan OpenPAM), parece que pam_env
solo lee el archivo del sistema, por lo que no puede establecer variables por usuario de esta manera, solo para todos los usuarios.
Hay (¿ahora?) una manera más fácil, según la respuesta de @Zanchey aquí
Fish Shell: cómo configurar múltiples variables de entorno desde un archivo mediante la exportación
Sin embargo, el resumen es:
Pez:
echo -e "foo=3nfoobar=4" > .env; export (cat .env); env | grep foo
Intento:
echo -e "foo=3nfoobar=4" > .env; export $(cat .env | xargs); env | grep foo
siendo la diferencia $
y el uso de xargs
Comentarios y valoraciones de la guía
Eres capaz de corroborar nuestro quehacer ejecutando un comentario o dejando una valoración te damos las gracias.