我正在尝试使用 AWS CLI 和 for
在 bash 中循环以迭代清除多个 SQS 消息队列。 bash 脚本几乎按预期工作,我遇到的问题是每次 AWS CLI 发送请求时的返回值。当请求成功时,它返回一个空值并在命令行中打开一个交互式寻呼机。然后我必须手动输入 q
退出交互式屏幕并允许 for
循环继续下一次迭代。当尝试清除大量队列时,这变得非常乏味和耗时。
有没有办法配置 AWS CLI 以禁用此交互式寻呼机为每个返回值弹出?或者将返回值通过管道传输到单独的文件而不是显示的方法?
我玩过配置不同的返回值类型(文本、yaml、JSON)但没有任何运气。还有 --no-pagination
参数不会改变行为。
这是我尝试运行的 bash 脚本示例:
for x in 1 2 3; do
aws sqs purge-queue --queue-url https://sqs.<aws-region>.amazonaws.com/<id>/<env>-$x-<queueName>.fifo;
done
最佳答案
我自己刚刚遇到这个问题,我能够通过调用 aws cli 作为 AWS_PAGER="" aws ...
来禁用该行为。 .
或者,您可以简单地 export AWS_PAGER=""
在(bash)脚本的顶部。
来源:https://github.com/aws/aws-cli/pull/4702#issue-344978525
关于bash - 如何关闭 AWS CLI 返回值的寻呼机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60122188/