2010-10-22 6 views
8

J'essaie d'écrire le script PostgreSQL (s) mais ayant un problème avec la ligne de tralalaShebang pour psql

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

select now(); 

Cela me donne l'erreur comme si je venais entré psql sans aucun argument en ligne de commande. Comment puis-je le faire correctement?

Répondre

13

Le problème est que psql n'ignore pas la première ligne du fichier.

Vous pouvez essayer

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

select now(); 

ou simplement

#! /bin/sh 
psql << E_O_SQL 

select now(); 

E_O_SQL 
+1

Je préfère de beaucoup le second. C'est plus explicite. – bitcycle

+0

la chose '<< EOF' souffle mon esprit. – exebook

Questions connexes