aws cli 输出自动发送到 vi

mou*_*der 25 linux bash zsh oh-my-zsh aws-cli

我目前正在学习 AWS CLI (v2) 并将其安装在 Ubuntu 18.04 上。我正在运行安装了 oh-my-zsh 的 zsh。我试图将 aws 命令输出作为 JSON 字符串(甚至作为文本)报告回终端,但输出始终重定向到 vi。

我的 AWS 账户是全新的 - 没有 EC2 实例。当我运行以下命令时:

aws ec2 describe-instances
Run Code Online (Sandbox Code Playgroud)

它发送预期的输出值(例如 { "Reservations": [] }),但直接发送到 vi 而不是将 JSON 字符串输出到需要关闭 vi 的终端。无论输出格式(json、文本、表格)或我使用什么外壳(bash、zsh),都会发生这种情况。

我不确定这是 AWS CLI 配置问题/更改还是 shell/Linux 配置问题/更改

  • 我已经查看了我的 .zshrc、.bashrc、.bash_profile 和 .bash_aliases 文件,并没有看到任何明显的解决方案可以改变或重定向输出。
  • 我一直在搜索 AWS CLI 文档、Stack Overflow 和 Google,但没有找到修复程序或类似案例。

感谢您的任何/所有建议。

mou*_*der 70

这是 PAGER 环境变量设置为“less”(我与 vi 混淆了)。

此修复是更新 ~/.aws/config 文件并将 cli_pager 设置为空值,例如:

[default]
region = us-west-2
output = json
cli_pager =
Run Code Online (Sandbox Code Playgroud)

感谢 Sorin,他对我的问题发表了评论,让我找到了答案。

  • 相关文档链接:https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-pager (3认同)
  • 对我来说,`cli_pager=`不起作用,但是`PAGER=` (2认同)
  • `cli_pager` 或 `PAGER` 对我不起作用。我必须改为“AWS_PAGER=”环境变量。使用 aws-cli 版本:`aws-cli/2.0.50 Python/3.8.5 Darwin/19.6.0 source/x86_64` (2认同)
  • 还有 CLI 参数 `--no-cli-pager` https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html#cli-usage-pagination-clientside (2认同)

nac*_*bre 41

--no-cli-pager只需像这样运行你的命令

aws ec2 describe-instances --no-cli-pager


suf*_*waz 18

您还可以运行单行命令:

aws configure set cli_pager ""
Run Code Online (Sandbox Code Playgroud)