* в это время было неожиданно. — проблема в команде bash для цикла

#bash #amazon-web-services #azure #terraform

#удар #amazon-веб-сервисы #лазурь #терраформирование

Вопрос:

У меня есть вывод ниже, который представляет собой список с именем customerdata строк. при попытке экспортировать первый элемент в списке он успешно экспортируется как test.csv, но я пытаюсь использовать цикл for для экспорта всех элементов в table.csv из списка с помощью команды bash в terraform, это приводит к ошибке

 "08-12-2021,network,bkz-net,tst",  "08-12-2021,network,bkz-net,tst",   "08-12-2021,network,bkz-net,tst",   "08-12-2021,network,bkz-net,tst",   "08-12-2021,network,bkz-net,tst",   customerdata = join("n",local.finallist) }  resource "null_resource" "billingcsv" {  provisioner "local-exec" {  //command = "echo ${local.customerdata[0]} gt; test.csv"  command = "for item in ${"local.customerdata[@]"} ; do echo $item ; done gt; table.csv"  } }  

Ошибка

 Error running command 'for item in local.billdata[@] ; do echo $item ; done gt; file.csv': exit status 1. Output: item was unexpected at this time.  

Похоже, проблема с синтаксисом, пробовал различные изменения, но все равно не удается с той же ошибкой. Пожалуйста, расскажите о том, что необходимо сделать. Примечание — Я пытаюсь выполнить команды bash с помощью terraform в ОС Windows

Заранее спасибо

Комментарии:

1. local.customerdata[@] должна быть оценена с помощью Terraform. Это не bash ссылка на массив.

2. как этого можно достичь? pl помогите

3. каким-то образом эта команда работает echo ${local.customerdata[0]} gt; test.csv это выводит первое значение в списке

4. У вас двойные кавычки внутри двойных кавычек, это, вероятно, не сделает того, чего вы ожидаете. Возможно, вы имели command = "for item in ${local.customerdata[@]} ; do... в виду, что если приведенный вами пример echo работает так, как показано, это предложение должно решить вашу проблему.

5. Использование @ bash -это функция массива, а не функция массива терраформирования. Использование целочисленного индекса работает в обоих случаях.