2010-10-22 31 views
8

Tôi đang cố gắng để viết kịch bản PostgreSQL (s) nhưng gặp vấn đề với dây chuyền công việccông việc cho psql

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

select now(); 

này mang lại cho tôi lỗi như thể tôi vừa bước vào psql mà không cần bất kỳ đối số trong dòng lệnh. Làm thế nào để tôi làm điều đó đúng không?

Trả lời

13

Vấn đề là psql không bỏ qua dòng đầu tiên của tệp.

Bạn có thể thử

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

select now(); 

hoặc đơn giản là

#! /bin/sh 
psql << E_O_SQL 

select now(); 

E_O_SQL 
+1

Tôi rất thích cái thứ hai. Rõ ràng hơn. – bitcycle

+0

điều '<< EOF' làm tôi suy nghĩ. – exebook

Các vấn đề liên quan