Вывод запроса PSQL в стандартный вывод в формате CSV с переменными скрипта bash

#bash #shell #csv #psql

#bash #оболочка #csv #psql

Вопрос:

Я пытаюсь запустить запрос posgresql из скрипта bash и вернуть результат в виде файла csv в стандартный вывод. Я могу сделать это либо с помощью флага —csv, либо СКОПИРОВАТЬ В стандартный ВЫВОД С ЗАГОЛОВКОМ CSV без каких-либо проблем. Проблема возникает, когда я хочу ввести некоторые переменные, используя флаг -v. и это дает мне ошибку

 ERROR:  syntax error at or near ":"
LINE 5: WHERE b.regulator_id  = ANY(string_to_array(:ids,' ')::varch...
 

Команда, которую я запускаю,

 psql -U rs --csv -v ids="$(echo $deleted)" -c  "COPY (
SELECT     b.regulator_id,     b.name
FROM branch  b 
WHERE b.regulator_id  = ANY(string_to_array(:ids,' ')::varchar[])
GROUP BY b.regulator_id ) TO STDOUT" db
 

Каков был бы правильный способ вернуть результат запроса psql в виде csv и в стандартный вывод?

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

1. Зачем вам нужен $(echo $deleted)? Вы не можете просто использовать «$deleted»

2. У меня это было раньше, но я просто менял вещи в надежде, что один из них сработает.

3. Я только что вернул его обратно в «$ deleted», но все та же ошибка

4. Что на самом деле находится в удаленной переменной?

5. Это список чисел, например 661060 557986 598185 524077 630420. Строка должна быть конкретной