Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用bash脚本变量将PSQL查询作为CSV输出到STDOUT_Bash_Shell_Csv_Psql - Fatal编程技术网

使用bash脚本变量将PSQL查询作为CSV输出到STDOUT

使用bash脚本变量将PSQL查询作为CSV输出到STDOUT,bash,shell,csv,psql,Bash,Shell,Csv,Psql,我试图从bash脚本运行posgresql查询,并将结果作为csv文件返回给STDOUT。我可以使用--csv标志或使用csv头复制到标准输出,而不会出现任何问题。问题来自于我想使用-v标志注入一些变量。这给了我一个错误 ERROR: syntax error at or near ":" LINE 5: WHERE b.regulator_id = ANY(string_to_array(:ids,' ')::varch... 我正在运行的命令是 psql -U rs

我试图从bash脚本运行posgresql查询,并将结果作为csv文件返回给STDOUT。我可以使用--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返回到标准输出的正确方法是什么?

为什么需要$(echo$已删除)?你不能只用“$deleted”吗?我以前有过这个,但我只是想改变一下,希望其中一个能起作用。我刚把它放回“$deleted”,但它仍然是同一个错误。删除的变量中到底有什么?它是一个数字列表,例如661060 557986 598185 524077 630420。要指定的字符串