【问题标题】:Trying to store a command in a shell variable but it errors out尝试将命令存储在 shell 变量中,但它出错了
【发布时间】:2021-05-25 23:28:53
【问题描述】:

我有一个将用作命令的字符串。同样在运行该命令之前,我需要用变量值替换字符串模式..

但是在分配时,我得到的命令未找到所有输出行。

我已尝试放置转义字符但没有帮助。

role-command="aws sts assume-role --role-arn  arn:aws:iam::<acct_id>:role/AWS-Role --role-session-name temp-aws-rolesession --output text --duration-seconds 3600 --query 'Credentials.[[join(`=`,[`AWS_ACCESS_KEY_ID`, AccessKeyId])],[join(`=`,[`AWS_SECRET_ACCESS_KEY`, SecretAccessKey])],[join(`=`,[`AWS_SESSION_TOKEN`, SessionToken])]]'"

bash: =: 找不到命令 bash:AWS_ACCESS_KEY_ID:找不到命令 bash: =: 找不到命令 bash:AWS_SECRET_ACCESS_KEY:找不到命令 bash: =: 找不到命令 bash:AWS_SESSION_TOKEN:找不到命令

bash: 角色命令=aws sts 假设角色 --role-arn arn:aws:iam:::role/AWS-Role --role-session-name temp-aws-rolesession --output text --duration-seconds 3600 --query 'Credentials.[[join(,[, AccessKeyId])],[join(,[, SecretAccessKey])],[join(,[, SessionToken])]]': 否这样的文件或目录

我本来应该做 sed -i s//97476414123/g ${role-command}

我怎样才能做到这一点?

我什至在下面尝试过:

role-command="aws sts assume-role --role-arn  arn:aws:iam::<acct_id>:role/AWS-Role --role-session-name temp-aws-rolesession --output text --duration-seconds 3600 --query 'Credentials.[[join(\`=\`,[\`AWS_ACCESS_KEY_ID\`, AccessKeyId])],[join(\`=\`,[\`AWS_SECRET_ACCESS_KEY\`, SecretAccessKey])],[join(\`=\`,[\`AWS_SESSION_TOKEN\`, SessionToken])]]'"

Getting below:

bash: role-command=aws sts assume-role --role-arn  arn:aws:iam::<acct_id>:role/AWS-Role --role-session-name temp-aws-rolesession --output text --duration-seconds 3600 --query 'Credentials.[[join(`=`,[`AWS_ACCESS_KEY_ID`, AccessKeyId])],[join(`=`,[`AWS_SECRET_ACCESS_KEY`, SecretAccessKey])],[join(`=`,[`AWS_SESSION_TOKEN`, SessionToken])]]': No such file or directory

问候, 萨

【问题讨论】:

  • 我做对了。我可以确认它现在完成了。 ................................ y="$(echo "aws sts 假设角色 --role-arn arn:aws:iam :::role/AWS-Role --role-session-name role-session --output text --duration-seconds 3600 --query 'Credentials.[[join(`=`,[`AWS_ACCESS_KEY_ID`, AccessKeyId])],[join(`=`,[`AWS_SECRET_ACCESS_KEY`, SecretAccessKey])],[join(`=`,[`AWS_SESSION_TOKEN`, SessionToken])]]'" |sed 's// 56787654567/g')"

标签: shell amazon-iam


【解决方案1】:

我做对了。我可以确认它现在完成了

y="$(echo "aws sts assume-role --role-arn arn:aws:iam::&lt;acct_id&gt;:role/AWS-Role --role-session-name role-session --output text --duration-seconds 3600 --query 'Credentials.[[join(`=`,[`AWS_ACCESS_KEY_ID`, AccessKeyId])],[join(`=`,[`AWS_SECRET_ACCESS_KEY`, SecretAccessKey])],[join(`=`,[`AWS_SESSION_TOKEN`, SessionToken])]]'" |sed 's/&lt;acct_id&gt;/56787654567/g')"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 2022-10-19
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多