#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, которые следует учитывать.