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.john...@cox.net> Date: 3/12/18 2:15 PM (GMT-05:00) To: pgsql-general <pgsql-gene...@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.