Шебанг для PSQL - PullRequest
       10

Шебанг для PSQL

8 голосов
/ 22 октября 2010

Я пытаюсь написать сценарий (и) PostgreSQL, но у меня проблема со строкой shebang

#! /usr/bin/psql [ psql_args_here ] -f

select now();

Это выдает ошибку, как будто я только что ввел psql без каких-либо аргументов в командной строке.Как мне сделать это правильно?

Ответы [ 2 ]

13 голосов
/ 22 октября 2010

Проблема в том, что psql не пропускает первую строку файла.

Вы можете попробовать

#! /bin/sh
exec sh -c "tail -n +3 $0 | psql -f -"

select now();

или просто

#! /bin/sh
psql << E_O_SQL

select now();

E_O_SQL
2 голосов
/ 19 апреля 2018

Существует еще лучшее решение. Первая строка должна быть:

--() { :; }; exec psql -f "$0"

Работает как обычный шебанг #!

http://rosettacode.org/wiki/Multiline_shebang#PostgreSQL

...