`wsl env`는 `wsl`과 `env`에 다른 결과를 제공합니다.

`wsl env`는 `wsl`과 `env`에 다른 결과를 제공합니다.

WSL 내부(예: cmd를 연 다음 실행하거나 시작 메뉴에서 바로 wsl실행 wsl) 끝에 다음 줄이 있습니다 ~/.bashrc.

LANG=en_US.UTF-8

여전히 WSL 내에 있는 동안 env다음이 표시됩니다.

LANG=en_US.UTF-8

모두 좋은. 그러나 exitWSL에서 다시 cmd 프롬프트로 돌아 가면 wsl env다음이 표시됩니다.

LANG=C.UTF-8

저는 주로 Windows 사용자이고 이 문제를 해결하기 위해 무슨 일이 일어나고 있는지 충분히 모릅니다. 변수에 대해 다음에 수행한 것과 wsl env동일한 결과를 어떻게 제공할 수 있습니까 ?LANGwslenv

답변1

Clonkex, 이것은 "bash" 쉘 호출로 귀결됩니다. "wsl"을 실행하면 bash가 대화형 모드로 실행됩니다. 그러나 "wsl"을 실행하면 비대화형 모드에서 실행됩니다.

그만큼배쉬 매뉴얼 페이지다양한 호출 형식이 다양한 시작 스크립트(.bashrc, .bash_profile, .profile 등)를 실행하는 방법을 설명합니다.

UNIX/Linux 환경에서는 일반적으로 bash를 실행할 때 "-i"를 지정하여 대화형 모드에서 강제로 실행되도록 할 수 있습니다. 그러나 wsl은 그것을 허용하고 싶지 않은 것 같습니다.

비대화형 모드에서도 환경 변수를 설정하려면 이 작업을 수행하는 명령을 /etc/profile에 추가하거나 (바람직하게는) /etc/profile.d/에 새 파일을 만들고 거기에 명령을 추가할 수 있습니다. 이 파일은 인수를 사용하여 wsl을 실행하는지 여부에 관계없이 실행됩니다.

관련 정보