Из подсистемы Windows для терминала Linux (v1) Alpine bash я бы хотел установить переменную окружения, которая будет передана в исполняемый файл windows. Есть ли способ сделать это?
пример того, что я надеялся, напечатал бы "Hello, World!":
windows-10:~# export X=World
windows-10:~# cmd.exe /c 'echo Hello, %X%!'
Hello, %X%!
См. Ответ от Филиппа ниже.
Вот копия соответствующей информации от https://docs.microsoft.com/en-us/windows/wsl/interop
Совместное использование переменных среды между Windows и WSL
Available in Windows Insider builds 17063 and later.
До 17063, только Windows Переменная окружения, к которой WSL мог получить доступ, была PATH (поэтому вы могли запускать исполняемые файлы Win32 из-под WSL).
Начиная с 17063, WSL и Windows совместно используют WSLENV, специальную переменную среды, созданную для соединения Windows и Linux дистрибутивы, работающие на WSL.
Свойства WSLENV:
It is shared; it exists in both Windows and WSL environments.
It is a list of environment variables to share between Windows and WSL.
It can format environment variables to work well in Windows and WSL.
В WSLENV доступно четыре флага, которые влияют на преобразование этой переменной среды.
Флаги WSLENV :
/p - translates the path between WSL/Linux style paths and Win32 paths.
/l - indicates the environment variable is a list of paths.
/u - indicates that this environment variable should only be included when running WSL from Win32.
/w - indicates that this environment variable should only be included when running Win32 from WSL.
Флаги можно комбинировать при необходимости.