在Freebsd OS上的psql命令行上运行脚本时,如何将输出以及错误消息记录到文件中?

时间:2019-05-02 09:15:21

标签: postgresql freebsd postgresql-9.4

在RHEL上,以下命令有效: psql -h主机名-U用户名-p port_no -d数据库-f /tmp/myfile.sql&> logfile01.txt

在FreeBSD上,这将引发错误: “无效的空命令”

请提出建议。

2 个答案:

答案 0 :(得分:1)

如果仅在命令行上使用此命令,则无需更改外壳程序。 要将stdout和stderr重定向到C-Shell synthax中的文件,只需使用“>&filename”。

不同的情况是,如果您要编写Shell脚本。 Bourne Shell及其克隆(例如Bash)更适合编写脚本。请参阅此Unix常见问题解答“认为Csh编程有害”:http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

答案 1 :(得分:0)

此重定向在bash中有效

&> logfile01.txt

,但在FreeBSD中的default shell csh 中不起作用。

# set | grep shell
shell   /bin/csh
# ls -la &> logfile01.txt
Invalid null command.

默认情况下未安装Bash。您可以install

pkg install bash

,并将其配置为default shell