Re: psql in a bash function

Ron Johnson <ron.l.johnson@cox.net>

From: Ron Johnson <ron.l.johnson@cox.net>
To: pgsql-general@lists.postgresql.org
Date: 2018-03-12T18:32:24Z
Lists: pgsql-general
I knew it was something simple... Thanks

On 03/12/2018 01:24 PM, Eric Raskin wrote:
> Yes, you need double quotes around $@, as in "$@".
>
> https://www.gnu.org/software/bash/manual/html_node/Special-Parameters.html
>
>
>
> Sent from my Verizon, Samsung Galaxy smartphone
>
>
> -------- Original message --------
> From: Ron Johnson <ron.l.johnson@cox.net>
> Date: 3/12/18 2:15 PM (GMT-05:00)
> To: pgsql-general <pgsql-general@postgresql.org>
> Subject: psql in a bash function
>
>
>
> Hi,
>
> Because I need to log into many servers, I created functions as keyboard 
> shortcuts (not aliases, since I will want to embed these shortcuts in 
> other functions).
>
> psqlxyz ()
> {
>     echo "P1=$1";
>     echo "P2=$2";
>     psql -U postgres -h XYZ $@
> }
>
> This is the (simple, test) command that I want to run, which works when 
> run explicitly using psql, but not my function.  Any ideas why the 
> function isn't properly passing the "-c" and '"select ..."' to psql?
>
> $ psql -U postgres -h XYZ -c "select oid, datname from pg_database;"
>    oid   |        datname
> ---------+------------------------
>        1 | template1
>    11563 | template0
>    11564 | postgres
>    16404 | test1
>  3039800 | ABCD
>   319011 | EFGH
>   649861 | IJKL
> (7 rows)
>
> $ psqldba -c *'*"select oid, datname from pg_database;"*'*
> P1=*-c*
> P2=*"select oid, datname from pg_database;"*
> psql: warning: extra command-line argument "datname" ignored
> psql: warning: extra command-line argument "from" ignored
> psql: warning: extra command-line argument "pg_database;"" ignored
> psql: FATAL:  database "oid," does not exist
>
> Thanks
>
> -- 
> Angular momentum makes the world go 'round.


-- 
Angular momentum makes the world go 'round.