На самом деле ваше выражение files+=( "$input" )
добавляет элементы в ваш массив, но вы не итерируете его правильно.
Ваш последний цикл должен быть:
for f in "${files[@]}"; do
echo "element is: $f"
done
$ a+=(1)
$ a+=("hello")
$ a+=(3)
$ for i in "${a[@]}"; do echo "$i"; done
1
hello
3
Я не думаю, что есть способ сделать это с persistent
. postrgresql-simple
(при условии, что мы говорим о Postgres здесь), который используется в persistent
, имеет специальную конструкцию в , которая корректно переводится в In (..) в SQL, но persistent
, похоже, не использует его. Можно надеяться, что в качестве обходного пути можно использовать конструктор PersistDbSpecific , который принимает в качестве аргумента ByteString
(поэтому мы можем вручную выполнить рендеринг и передать что-то вроде (123,456,789)
), но, к сожалению, он преобразуется в SQL через Неизвестный , который затем визуализируется с помощью Escape , который не только экранирует строку, но и заключает ее в кавычки , что делает наш SQL недействительным. Если бы persistent
использовали Plain (что, на мой взгляд, имело бы гораздо больше смысла), этот подход работал бы, но, к сожалению, это не так.