【问题标题】:error in shellscript while using psql command使用 psql 命令时 shellscript 出错
【发布时间】:2020-10-15 13:26:49
【问题描述】:

大家好,我正在尝试使用 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 '^''

谁能帮我解决这个问题

【问题讨论】:

    标签: bash shell scripting sh psql


    【解决方案1】:

    使用“这里的文档”:

    #!/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 的标准输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-29
      • 2023-03-18
      • 2016-08-06
      • 2016-01-02
      • 2019-01-12
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多