javascript在循环中传递变量

javascript在循环中传递变量,javascript,amazon-cloudformation,aws-cli,Javascript,Amazon Cloudformation,Aws Cli,我给变量StackName分配了20个值。我想逐个删除通过循环的所有20个值。我试过了,但是这个同时打印了所有的值 StackName=$(aws cloudformation list-stacks | grep StackName | awk '{FS=" "} {print $2}' | sed "s/\"//g" | sed 's/,//g') echo "Stack names to be deleted are: ${StackName}" for i in ${!StackN

我给变量StackName分配了20个值。我想逐个删除通过循环的所有20个值。我试过了,但是这个同时打印了所有的值

StackName=$(aws cloudformation list-stacks | grep StackName | awk '{FS=" "} {print $2}' | sed "s/\"//g" | sed 's/,//g')

echo "Stack names to be deleted are: ${StackName}" 

for i in ${!StackName[@]} ;

do

  echo "Deleting stack ${StackName}"

    aws cloudformation delete-stack --stack-name ${StackName}

done
有人能帮忙吗?

你可以使用aws--query而不是所有的
sed

aws cloudformation list-stacks --query StackSummaries[].StackName --output text
它应该打印所有堆栈名称,它们之间有空格,这应该符合输入要求,因此您可以执行以下操作:

for stack in `aws cloudformation list-stacks --query StackSummaries[].StackName --output text`; do
  echo "Deleting stack ${stack}"
  aws cloudformation delete-stack --stack-name ${stack}
done

如果您在循环中使用
${i}
而不是包含所有堆栈名称的
${StackName}
,那么您的原始代码可能也可以工作。

欢迎使用堆栈溢出!请拿起,四处看看,并通读,特别有用的地方是开始标记正确的语言。