我正在尝试编写PostgreSQL脚本但是遇到了shebang line的问题
#! /usr/bin/psql [ psql_args_here ] -f
select now();
这给了我错误,好像我刚刚在命令行中输入psql
而没有任何参数。我该怎么做?
答案 0 :(得分:13)
问题是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
答案 1 :(得分:2)
有一个更好的解决方案。第一行应该是:
--() { :; }; exec psql -f "$0"
它作为一个常规的shebang#!