1

Я использую WSL (Windows Subsystem для Linux) в Windows 10 и установил на нем Amazon AWS cli. Когда я запускаю WSL (C:\\WINDOWS\\System32\\wsl.exe в PowerShell), а затем aws он работает нормально. Если я попытаюсь запустить его как однострочник (C:\\WINDOWS\\System32\\wsl.exe aws), он не найдет команду aws . Мне нужно, чтобы он был однострочным, чтобы иметь возможность использовать его из задачи VS Code.

PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe aws
/bin/bash: aws: command not found
PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe
pablo@DCA-WS01:/mnt/c/Users/pablo.DCA$ aws
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: too few arguments

Простая команда echo работает:

PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe echo Hi
Hi

Как и Python (который я использовал для установки aws):

PS C:\Users\pablo.DCA> C:\\WINDOWS\\System32\\wsl.exe python
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Почему это происходит? И как я могу это исправить, или что я могу попытаться выяснить, что происходит не так?

1 ответ1

0

Скорее всего, AWS не находится в системном пути, как /usr/bin/ . Если вы добавляете его в свой $PATH , например, в ~/.bashrc , он обычно не будет выполняться, пока вы не перезапустите свой терминал.

Одним из вариантов будет использование полного пути к aws в одном вызове из Windows:

c:\\windows\\system32\\wsl.exe /home/username/.local/bin/aws

Или вы можете заставить bash вести себя так, как если бы он вызывался как оболочка входа в систему с опцией -l (или --login)

 c:\\windows\\system32\\wsl.exe bash -l aws

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .