![](/img/trans.png)
[英]How to get public dns name from aws ec2 describe-instances
[英]Getting value out from square brackets in “aws ec2 describe-instances” output
我將命令的輸出保存在變量中,並在其他命令中使用它
instance_id=$(aws ec2 describe-instances --query Reservations[*].Instances[*].[InstanceId] --filters "Name=tag:staging,Values=staging")
我得到這個輸出[[[“ i-09140824c1b7f9ea7”]]]
如何從輸出中刪除括號並在此命令的變量中使用它
aws ec2 associate-address --instance-id $instance_id --allocation-id allocid
我是bash的新手,所以將不勝感激。
您可以使用以下方法提取值並將其從JSON解碼為純文本:
instance_id_json='[ [ [ "i-09140824c1b7f9ea7" ] ] ]'
instance_id=$(jq -r '.[][][]' <<<"$instance_id_json")
考慮將原始代碼更改為:
instance_id_json=$(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --filters 'Name=tag:staging,Values=staging')
...請注意,我們將查詢放在引號中(因為它具有glob字符),而不僅是過濾器(而且該過濾器旨在作為不帶擴展名的文字文本,因此默認情況下使用單引號而不是形式)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.