aws cli выводится автоматически в vi - PullRequest
2 голосов
/ 22 февраля 2020

В настоящее время я изучаю AWS CLI (v2) и установил его в Ubuntu 18.04. Я бегу zsh с установленным oh-my- zsh. Я пытаюсь получить вывод команды aws, который будет возвращен на терминал в виде строки JSON (или даже в виде текста), но вывод всегда перенаправлен на vi.

Моя AWS учетная запись совершенно новая - экземпляров EC2 нет. Когда я запускаю следующую команду:

aws ec2 describe-instances

Она отправляет ожидаемое выходное значение (например, {"Reservations": []}), но напрямую в vi вместо вывода строки JSON на терминал, требующий после закрытия vi Это происходит независимо от формата вывода (json, текст, таблица) или от того, какую оболочку я использую (bash, zsh).

Я не уверен, что это проблема / изменение конфигурации CLI AWS или проблема / изменение конфигурации оболочки / Linux

  • Я просмотрел свой .zshr * Файлы 1031 *, .bashr c, .bash_profile и .bash_aliases и не нашли здесь очевидного решения, которое могло бы изменить или перенаправить вывод.
  • Я изучал документацию CLI AWS, переполнение стека и Google, и я не нашел исправления или аналогичного случая.

Спасибо за любые / все предложения .

Ответы [ 3 ]

5 голосов
/ 22 февраля 2020

Это была переменная среды PAGER, установленная на "less" (что я путал с vi).

Это исправление - обновить файл ~ / .aws / config и установить в cli_pager пустое значение, Например:

[default]
region = us-west-2
output = json
cli_pager =

Спасибо Сорину, который прокомментировал мой вопрос, и привел меня к ответу.

0 голосов
/ 22 февраля 2020

Я рекомендую либо создать новую учетную запись пользователя и / или зайти в подоболочку без профиля и снова попытаться выполнить команду AWS. Например ...

username:~$ sudo -u `whoami` bash --noprofile
# Now it drops us into a sub-shell with no /etc/profile or any scripts
bash-3.2$ aws ec2 describe-instances

Выше вы погружаетесь в подоболочку, в которой нет ни одного файла профиля (/ etc / profile или .bash_profile). Это должно быть нетронутым. Отсюда мы снова попробуем вашу команду и посмотрим, что она делает. Я предполагаю, что здесь все будет работать нормально, и вы не попадете в VI. Если это так, то вам нужно искать в другом месте, что включает в себя bash / zsh (например, / etc / profile), что вызывает это.

ПРИМЕЧАНИЕ: Если это так НЕ исправьте вашу проблему, ваша проблема может быть в папке ~ /.aws, я бы стер эту папку и начал с нуля, перезапустил aws configure и затем повторил бы вашу команду.

0 голосов
/ 22 февраля 2020

На AWS имеется документ с заголовком Управление выводом команды из AWS CLI . В соответствии с этим do c, правильный синтаксис должен быть

aws ec2 describe-instances --output json
...