I'm trying to write PostgreSQL script(s) but having a problem with shebang line
#! /usr/bin/psql [ psql_args_here ] -f
select now();
This gives me error as if I just entered psql
without any arguments in command line. How do I do it right?
The problem is that psql don't skip the first line of the file.
You could try
#! /bin/sh
exec sh -c "tail -n +3 $0 | psql -f -"
select now();
or simply
#! /bin/sh
psql << E_O_SQL
select now();
E_O_SQL
There is a even better solution. The first line should be:
--() { :; }; exec psql -f "$0"
It works as a regular shebang #!
http://rosettacode.org/wiki/Multiline_shebang#PostgreSQL
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With