上下文:从Bash进行一些AWS API调用,这给了我一个Ids列表。我被困在能够解析它,以及如何将它作为参数传递给函数。
测试Bash脚本:
#!/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[@]}"如有任何建议,我们将不胜感激。谢谢。
发布于 2020-10-16 15:42:13
如果您指的是bash中的数组(您最初的问题似乎表明输入文件是实际的bash代码),那么它使用的是()而不是[]
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不出所料,输出结果如下:
pax is awesome
d-1
d-2
d-3
pax is awesome但是,如果您实际上是从API中获取JSON,那么jq是一个很好的工具,下面的文字记录中显示了一个示例:
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"https://stackoverflow.com/questions/64384792
复制相似问题