Как я могу заставить PowerShell получать переменные среды в Ubuntu 20.10?

#bash #powershell #ubuntu #ubuntu-20.10

#bash #powershell #ubuntu #ubuntu-20.10

Вопрос:

Я установил PowerShell в Ubuntu 20.10 и пытаюсь использовать его на терминале, но, похоже, он не знает переменные среды. Как я могу заставить PowerShell знать переменные среды в Ubuntu?

Комментарии:

1. Это все равно, что пытаться запустить программу на python с помощью интерпретатора javascript и ожидать, что она сработает…

2. @Shawn Хорошо, понял. Как PowerShell может получать переменные среды в Ubuntu?

3. bash -c env ?…

4. Powershell поддерживает Linux. У него есть причуды, но базовая поддержка есть.


Ответ №1:

Write-Host $Env:PATH это пример того, как получить доступ к переменной среды из Powershell в Linux. Примечание: имена переменных чувствительны к регистру.

Если вы хотите увидеть переменные, которые Powershell может «видеть»,

Get-ChildItem Env: — это возвращает переменные, которые экспортируются в среду. Он не получит переменные, которые являются локальными для сеанса.

Если вы запустите printenv Ubuntu, вы увидите все переменные, экспортированные в среду — они будут доступны Powershell, как указано выше.

Если вы запустите set из Ubuntu, вы увидите все переменные (переменные среды и оболочки). Чтобы сделать его доступным из Powershell, вам нужно будет экспортировать его:

 export x=$someshellvariable
pwsh
PS /mnt/c/git> Get-ChildItem $Env:x

Name                           Value
----                           -----
x                              test
 

Комментарии:

1. Я пробовал это, и это дает очень мало путей по сравнению с тем, что я знаю, что есть. Интересно, где PowerShell их читает или как я могу заставить его узнать, что знает bash.

2. Обновленный ответ — за переменными стоит больше и то, как они поддерживаются в Powershell, которые следует учитывать.