2010-10-22 16 views
8

Sto cercando di scrivere lo script (s) PostgreSQL, ma avendo un problema con shebangShebang per psql

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

select now(); 

Questo mi dà l'errore come se fossi appena entrato psql senza argomenti a linea di comando. Come lo faccio bene?

risposta

13

Il problema è che psql non salta la prima riga del file.

Si potrebbe provare

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

select now(); 

o semplicemente

#! /bin/sh 
psql << E_O_SQL 

select now(); 

E_O_SQL 
+1

preferisco di gran lunga la seconda. È più esplicito. – bitcycle

+0

la cosa '' EOF' mi fa impazzire. – exebook