连接命令可以嵌入到 psql 脚本中吗?

Can a connection command be embedded in a psql script?

我正在 运行交互式地编写一个脚本来测试它。元命令 \c 不能很好地与标准 sql 命令一起使用:它似乎想自己成为 运行。这是脚本

中的 运行 时发生的情况
\set username steve

\c pubkey  :username

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO :username;
GRANT ALL PRIVILEGES ON ALL sequences IN SCHEMA public TO :username;

结果:

invalid integer value "ALL" for connection option "port"
Previous connection kept

但是如果“\c”命令本身是 运行 那么随后的 grant 是成功的。有没有办法在 psql 脚本中嵌入“\c”连接命令?

psql 中的 运行 似乎与脚本本身具有不同的行为:运行 上面使用 -f 的命令行确实有效

psql postgres -f create_dbs.sql -a > db.out 2>&1

而 运行 来自 psql 的 '\c` 命令似乎需要隔离。