将“在新会话上”打印的命令结果分配给变量

将“在新会话上”打印的命令结果分配给变量

我有一个 bash 脚本,其中执行以下命令:

aws s3api list-objects --bucket my-bucket-name --output text

它恢复项目列表并将其打印在屏幕上的“新会话”中。看起来调用另一个命令来打印结果。它显示部分结果和列表末尾的“:”,您可以在其中按“空格”或“q”。当您“q”(退出)时,它会显示回“原始”终端内容。

我想知道如何识别 aws 执行的这个“打印命令”以及如何将其存储在变量中。我尝试过将其重定向到文件 ( > file) 或将命令输出分配给变量 ( output=$(command)),但都不起作用。

答案1

您必须使用命令行客户端--no-cli-pager的选项aws来禁用该寻呼机。

yourvar="$(aws --no-cli-pager s3cli …)"

我还没有检查过,但它完全有可能集成自己的寻呼机而不是使用less.但它也可能只使用less,这是此类事物的常见选择。

相关内容