Dentro de WSL (es decir, abriendo un cmd y luego ejecutando wsl
, o simplemente ejecutando wsl
directamente desde el menú de inicio) tengo esta línea al final de ~/.bashrc
:
LANG=en_US.UTF-8
Mientras todavía estoy dentro de WSL, si lo hago, env
veo lo siguiente:
LANG=en_US.UTF-8
Todo es bueno. Sin embargo, si exit
vuelvo de WSL al indicador cmd, veo wsl env
esto:
LANG=C.UTF-8
Soy principalmente una persona de Windows y no sé lo suficiente sobre lo que está pasando para resolver este problema. ¿Cómo puedo wsl env
dar el mismo resultado para la LANG
variable que hacer wsl
seguido de env
?
Respuesta1
Clonkex, esto se reduce a la invocación del shell "bash". Cuando simplemente ejecuta "wsl", ejecuta bash en modo interactivo. Sin embargo, cuando ejecuta "wsl", lo hace en modo no interactivo.
Elpágina de manual de bashdescribe cómo las diferentes formas de invocación ejecutarán diferentes scripts de inicio (.bashrc, .bash_profile, .profile, etc.).
En un entorno UNIX/Linux, generalmente puede forzar que bash se ejecute en modo interactivo especificando "-i" al ejecutarlo. Pero wsl no parece querer permitir eso.
Si desea configurar una variable de entorno incluso cuando está en modo no interactivo, puede agregar comandos para hacerlo en /etc/profile, o (preferiblemente) crear un nuevo archivo en /etc/profile.d/ y agregar los comandos allí. Este archivo se ejecutará independientemente de si ejecuta wsl con argumentos o no.