首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Bash中解析列表数据类型

如何在Bash中解析列表数据类型
EN

Stack Overflow用户
提问于 2020-10-16 15:33:39
回答 1查看 56关注 0票数 0

上下文:从Bash进行一些AWS API调用,这给了我一个Ids列表。我被困在能够解析它,以及如何将它作为参数传递给函数。

测试Bash脚本:

代码语言:javascript
复制
#!/bin/bash -ex
input_data in format:


[
        "d-1",
    
        "d-2",
    
        "d-3",
    
        "d-4"
    
    ]
     # None of the following calls work
     # assume lst=<above data type>
     echo "1. $lst"
    
     echo "2. ${lst[*]}"
    
     echo "3. ${lst[@]}"

如有任何建议,我们将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 15:42:13

如果您指的是bash中的数组(您最初的问题似乎表明输入文件是实际的bash代码),那么它使用的是()而不是[]

代码语言:javascript
复制
lst=("d-1" "d-2" "d-3" "pax is awesome")
echo "${lst[3]}"                           # Specific zero-based item.
for item in "${lst[@]}" ; do               # Process all items.
    echo "${item}"
done

不出所料,输出结果如下:

代码语言:javascript
复制
pax is awesome
d-1
d-2
d-3
pax is awesome

但是,如果您实际上是从API中获取JSON,那么jq是一个很好的工具,下面的文字记录中显示了一个示例:

代码语言:javascript
复制
pax:~> cat json.in
[
    "d-1",
    "d-2",
    "d-3"
]

pax:~> idList=($(jq '.[]' json.in))
pax:~> for item in ${idList[@]} ; do echo ${item} ; done
"d-1"
"d-2"
"d-3"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64384792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档