当我运行这样的命令时psql -d database -c 'select * from table'
orpsql -d database -f sqlcommands
psql
不会干净地终止。有趣的是,通过管道传输文件的内容而不是使用-f
选项,例如,psql -d database < sqlcommands
不会显示此行为。
我需要按或的q
要求来完成执行并返回到命令提示符吗?less
man
这是标准行为吗?是否需要一些转义以允许它干净地终止?
当我运行这样的命令时psql -d database -c 'select * from table'
orpsql -d database -f sqlcommands
psql
不会干净地终止。有趣的是,通过管道传输文件的内容而不是使用-f
选项,例如,psql -d database < sqlcommands
不会显示此行为。
我需要按或的q
要求来完成执行并返回到命令提示符吗?less
man
这是标准行为吗?是否需要一些转义以允许它干净地终止?
听起来你的终端的寻呼机正在接管输出:你可以告诉 psql 在你使用
-c 'select... '
调用时不要将它的输出发送到寻呼机:您也可以将该行
pset pager OFF
放入文件~/.psqlrc
中,但似乎 ~/.psqlrc 指令仅在交互模式下有效,不适用于通过-c '...'
. 来自Peter Eisentraut的关于非交互式 psql 使用的更多重要技巧。