Thread

  1. Re: psql in a bash function

    Ron Johnson <ron.l.johnson@cox.net> — 2018-03-12T18:32:24Z

    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.