PostgreSQL обрабатывает идентификатор, такой как имя таблицы, как строчные, если вы не заключите его в кавычки.
Вы сказали, что двойные кавычки не работают.Это, вероятно, потому что вы не правильно поняли цитатуЦитировать в оболочке сложно.Вы должны завершить строку двойных кавычек, окружающую весь запрос, просто чтобы запустить строку одинарных кавычек, которая содержит двойные кавычки:
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "\copy table_name("'"fileName"'", time) FROM $OUTPUT_FILE WITH DELIMITER AS ',' NULL 'null'"
Вы можете использовать тот факт, что psql также принимает команду через стандартный ввод, которыйпозволяет писать это следующим образом, не беспокоясь о кавычках:
psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME <<SQL
\copy table_name("fileName", time) FROM $OUTPUT_FILE WITH DELIMITER AS ',' NULL 'null'
SQL