Perhaps the grep solution will only provide an accurate response if the database name is not a substring of some other database name. In other words, if one were to attempt to confirm that database prod10 exists- they might execute (per the suggestion): psql --list | grep prod10 But, the result could be misleading if the following databases also exist on the same server: prod100 prod101 prod1000 myprod10 yourprod101 etc. I would like to suggest querying directly from the system table pg_database like this: psql --tuples-only --command "select * from pg_database where datname = 'prod10';" You can pipe and process the result as appropriate for your needs. -- View this message in context: http://postgresql.1045698.n5.nabble.com/psql-shell-return-codes-checking-if-database-exists-tp2088362p4488964.html Sent from the PostgreSQL - admin mailing list archive at Nabble.com. -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin