psql shell 命令执行带 \!

psql shell command execution with \!

有什么方法可以捕获 shell 输出(在 psql 变量中)and/or 运行 shell 命令的退出代码 psql 使用 \!documentation 未提供任何详细信息。

您可以使用 \o <filename> 选项指定输出文件或使用 COPY command 来解决您的问题。

\!

似乎不​​可能

但可以从外部命令输出设置变量,

testdb=> \set content `cat my_file.txt`

然后在 sql 表达式中使用此变量,如下所示:

testdb=> INSERT INTO my_table VALUES (:'content');

使用 \!\o..

你可以这样把两者结合起来,

  • \! echo "SELECT 1;" > bar(运行命令 echo "SELECT 1;"SELECT 1; 的输出重定向到 bar
  • \o bar(运行 bar 中的命令)