У меня есть подозрение, что это вызвано чем-то в вашем скрипте или файлах запуска (при условии, что ~/.bashrc
или же ~/.профиль
) неправильное цитирование ДОРОЖКА
переменная. Поскольку WSL автоматически добавляет путь Windows к пути WSL, он добавляет некоторые элементы пути с «Program Files», что правильно.
Но это требует правильного цитирования переменных. Проверьте свой скрипт на использование $ПУТЬ
и процитируйте его (или добавьте потенциально оскорбительные строки в свой вопрос, если вам нужна помощь в этом). Если вы не видите ничего подозрительного в скрипте, то также проверьте свой ~/.bashrc
и ~/.профиль
.
Изменить/обновить: я почти уверен, что оскорбительная строка будет в сценарии, который обрабатывается через бросаться
(т.е. ш
). Bash может справиться с этим без дополнительных кавычек:
> экспорт PATH=$PATH:новый путь
> эхо $?
0
> эхо $PATH
> # выводит правильный PATH, даже с пробелами в пути Windows
Тем не менее, запустить ш
и попробуйте то же самое:
$ экспорт ПУТЬ=$ПУТЬ:новый путь
sh: 1: экспорт: Файлы/NVIDIA: неверное имя переменной
$ экспорт PATH="$PATH":новый путь
$ эхо $?
0
$ эхо $ ПУТЬ
# выводит правильный PATH, даже с пробелами в пути Windows
Существует также «повязочное» решение для отключения функции WSL, которая добавляет путь Windows к пути WSL/Linux. Вы можете сделать это, создав (или отредактировав, если он уже существует) /etc/wsl.conf
и добавив следующие строки:
[взаимодействие]
appendWindowsPath = ложь
Затем остановите экземпляр с помощью wsl --завершить Ubuntu
(предполагается имя дистрибутива по умолчанию) и перезапустите WSL.
это не хороший постоянное решение, ИМХО, поскольку это значительно затрудняет запуск приложений Windows (таких как VSCode), когда они не находятся на пути.
Лучше выяснить основную проблему и исправить ее в скриптах.