arun kumar
arun kumar

Reputation: 41

How can I pass a variable in aws cli command in bash?

I am unable to pass a variable in the tag-user cli command.

A=$(aws iam list-user-tags --user-name user --query 'Tags[].{Key:Key,Value:Value}' | grep -B2 "Description" | grep Value | awk -F ":" '{print $2}' | tr -d '",'| awk '$1=$1')
aws iam list-user-tags --user-name user --query 'Tags[].{Key:Key,Value:Value}' | grep -B2 "Description" | grep Value
        "Value": "Used for SSO",

A=Used for SSO

passing the value of A to the below CLI :

aws iam tag-user --user-name azure-sso-user --tags "[{"Key": "own:team","Value": "[email protected]"},{"Key": "security","Value": "Service"},{"Key": "comment","Value": "$A"}]"

This is the error I get:

Error parsing parameter '--tags': Invalid JSON:
[{Key: own:team,Value: [email protected]},{Key: security,Value: Service},{Key: own:comment,Value: Used

Upvotes: 2

Views: 3769

Answers (1)

arun kumar
arun kumar

Reputation: 41

This worked:

aws iam tag-user --user-name user --tags '[{"Key": "own:team","Value": "[email protected]"},{"Key": "security","Value": "Service"},{"Key": "own:comment","Value": "'"$A"'"}]'

That is, using the following:

[
    {
        "Key": "own:team",
        "Value": "[email protected]"
    },
    {
        "Key": "security",
        "Value": "Service"
    },
    {
        "Key": "own:comment",
        "Value": "'"
        $A
        "'"
    }
]

Upvotes: 1

Related Questions