【问题标题】:Bash script Set variable in loop [duplicate]Bash脚本在循环中设置变量[重复]
【发布时间】:2019-01-05 04:55:15
【问题描述】:

我想为变量中的所有字符串运行一个 for 循环(一个接一个)。当我回显我的变量时,它是这样的

A=(curl -s 'localhost:9200/something)
echo "$A"

发射:

sss
ddd
fff
ggg
hhh

我的for循环是这样的:

for i in "${A[@]}"; do
  echo "$i"
  echo test
 done

但是循环只运行一次并打印所有数据,而不是在每个项目之后放置test

sss
ddd
fff
ggg
hhh
test

【问题讨论】:

  • 尝试简单的echo $A |而读线;回声 $line;完成.
  • @0andriy 谢谢。它是这样工作的: echo "$A" |而读线;做回声“$line”;完成
  • for i in $a; do echo "$i"; echo "test"; done
  • 最好将它们存储在 actual 数组中:a=("sss" "ddd"); for i in "${a[@]}"; do echo "$i"; done
  • @Pesa我正在运行一个命令并将输出发送到 A 变量。 A=(curl -s 'localhost:9200/something) 。此命令的输出逐行打印字符串。如何将输出发送到数组?

标签: linux bash


【解决方案1】:

正如@PresaThe 所建议的,

while read line ; do  echo "$line" ; echo testsss; done <  <(curl -s 'localhost:9200/something)

【讨论】:

  • How to Answer 中,注意“回答正确提出的问题”部分,以及其中关于“之前已经被多次询问和回答过的问题的要点"。