使用 psql 命令时 shellscript 出错
error in shellscript while using psql command
大家好,我正在尝试使用 shellscript 从 psql 获取数据
这是我的命令,运行良好
PGPASSWORD=nifi psql -U nifi -d MPT_BI -h 10.10.101.10
\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^'
\q
但是当我尝试使用 shell 进行自动化时,我遇到了错误,这是我的 shell 脚本
#!/bin/bash
dir='/home/bi_it/csv_export/gp_export'
cd $dir
PGPASSWORD=nifi psql -U nifi -d MPT_BI -h 10.10.101.10
\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^'
\q
错误
./newgp.sh: line 6: syntax error near unexpected token `select'
./newgp.sh: line 6: `\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^''
谁能帮我解决这个问题
使用“此处文档”:
#!/bin/bash
dir='/home/bi_it/csv_export/gp_export'
cd "$dir"
PGPASSWORD=nifi psql -U nifi -d MPT_BI -h 10.10.101.10 <<EOF
\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^'
\q
EOF
直到最后 EOF
的所有内容都将成为 psql
的标准输入。
大家好,我正在尝试使用 shellscript 从 psql 获取数据 这是我的命令,运行良好
PGPASSWORD=nifi psql -U nifi -d MPT_BI -h 10.10.101.10
\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^'
\q
但是当我尝试使用 shell 进行自动化时,我遇到了错误,这是我的 shell 脚本
#!/bin/bash
dir='/home/bi_it/csv_export/gp_export'
cd $dir
PGPASSWORD=nifi psql -U nifi -d MPT_BI -h 10.10.101.10
\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^'
\q
错误
./newgp.sh: line 6: syntax error near unexpected token `select'
./newgp.sh: line 6: `\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^''
谁能帮我解决这个问题
使用“此处文档”:
#!/bin/bash
dir='/home/bi_it/csv_export/gp_export'
cd "$dir"
PGPASSWORD=nifi psql -U nifi -d MPT_BI -h 10.10.101.10 <<EOF
\copy (select * from dwctr.tcmpt_usage_cellid_daily where stat_date='20200502' limit 10) TO '/home/bi_it/csv_export/gp_export/dwctr.tcmpt_usage_cellid_dailny_20200502.csv' CSV DELIMITER '^'
\q
EOF
直到最后 EOF
的所有内容都将成为 psql
的标准输入。