繁体   English   中英

将 for 循环的输出存储到数组或变量中

[英]Store output of for loop into an array or variable

我有一个 for 循环,如下所示。 我需要将循环的整个输出添加到数组或变量中。

for i in $ip
do
  curl -s $i:9200
done

知道我怎么能做到这一点吗?

你可以这样使用它:

# declare an array
declare -a arr=()

for i in $ip
do
  # append each curl output into our array
  arr+=( "$(curl -s $i:9200)" )
done

# check array content
declare -p arr

在 curl 注释周围使用引号很重要,以避免将curl命令输出的单词拆分为多个数组条目。 使用引号,所有 curl 输出将成为数组中的单个条目。

您可以使用+=

declare -a output
for i in $ip
do
  output+=("$(curl -s $i:9200)")
done

您可以通过将任何命令(包括复合命令)括在$()来捕获任何命令的输出。 使用该技术,您可以在变量中捕获for循环的输出,如下所示:

results=$(
  for i in $ip
  do
    curl -s $i:9200
  done
)

原则上,可以以类似的方式捕获到数组中,但适当地处理元素分隔符可能会被证明是困难的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM