Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to turn off the pager for AWS CLI return value?

I am attempting to utilize the AWS CLI along with a for loop in bash to iteratively purge multiple SQS message queues. The bash script works almost as intended, the problem I am having is with the return value each time the AWS CLI sends a request. When the request is successful, it returns an empty value and opens up an interactive pager in the command line. I then have to manually type q to exit the interactive screen and allow the for loop to continue to the next iteration. This becomes very tedious and time consuming when attempting to purge a large number of queues.

Is there a way to configure AWS CLI to disable this interactive pager from popping up for every return value? Or a way to pipe the return values into a separate file instead of being displayed?

I have played around with configuring different return value types (text, yaml, JSON) but haven't had any luck. Also the --no-pagination parameter doesn't change the behavior.

Here's an example of the bash script I'm trying to run:

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 
like image 816
Colin Armstrong Avatar asked Feb 07 '20 22:02

Colin Armstrong


People also ask

How do I change the default output format in AWS CLI?

During the aws configuration in CLI I use the command "aws configure", then i type the access key, secret access key, default region and default output type as "table".

How do I get out of AWS CLI?

Press q to exit.

Which command is used to get AWS CLI?

You can get help with any command when using the AWS Command Line Interface (AWS CLI). To do so, simply type help at the end of a command name.


2 Answers

Just running into this issue myself, I was able to disable the behaviour by invoking the aws cli as AWS_PAGER="" aws ....

Alternatively you could simply export AWS_PAGER="" at the top of your (bash) script.

Source: https://github.com/aws/aws-cli/pull/4702#issue-344978525

like image 110
cueedee Avatar answered Oct 14 '22 06:10

cueedee


You can disable pager either by exporting AWS_PAGER="" or by modifying you AWS cli config file.

export AWS_PAGER=""   ### or update your ~/.aws/config with   [default] cli_pager= 

Alternatively, you can enable the default pager to output of less program as

export AWS_PAGER="less"  

or corresponding config change.

Ref: https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html#cli-usage-pagination-clientside

like image 35
nakamume Avatar answered Oct 14 '22 05:10

nakamume