bash - 将两行输出分配给bash中的两个不同变量
问题描述
我正在编写一个 Bash 脚本,我必须在其中列出用户的 AWS 访问密钥,然后将它们分配给变量。
一个用户可能有两个访问密钥。因此,用户将需要两个变量来存储这些密钥。
这是我到目前为止的行:
aws iam list-access-keys --user-name "$user_name" --profile="$aws_key" | grep -i accesskeyid | awk '{print $2}' | sed 's/"//g'
输出将是这样的:
AKIAJS7KDACQRQ5FJWA
AKIAICDDTVTMEAB6RM5Q
如何将这些中的每一个分配给 Bash 中自己的变量?
解决方案
您可以使用参数替换在换行符上拆分字符串。获取最后一个换行符之前${variable%$'\n'*}
的值的部分,并获取第一个换行符之后的部分。$variable
${variable#*$'\n'}
顺便说一句,Awk 通常可以做任何事情grep
并且sed
可以做。
variable=$(aws iam list-access-keys --user-name "$user_name" --profile="$aws_key" |
awk 'tolower($0) ~ /accesskeyid/{gsub(/\"/,""); print $2}')
推荐阅读
- react-native - 如何在 .map 函数中使用 if 条件?
- python - GIF/PPM 到灰度转换器抛出错误“坐标超出范围”
- maven - 带有 docker 容器的 bitbucket 管道
- spring - @Pointcut 和 @Around 可以在不同的类中吗?
- amazon-web-services - Amazon Web Services:如何在 AWS API Gateway 中为 Mime Type application/x-www-form-urlencoded 添加测试请求正文?
- azure-active-directory - 我可以从 Azure AD 为我的应用程序获取 id_token 吗?
- keras - SeparableConv2D 和 Conv2D 层有什么区别?
- oracle - 导入一个表,将其更改为 ROWDEPENDCIES
- android - 位置更新在奥利奥上的 OPPO、VIVO 和 MI 手机中不起作用
- reactjs - 如何使用 axios post 解决有关 mongoose 的未决问题