如何在 运行 Freebsd OS 上的 psql 命令行上的脚本时将输出连同错误消息一起记录到文件中?
How to log the output along with error messages to a file while running a script on psql command line on Freebsd OS?
在 RHEL 上,以下命令有效:
psql -h 主机名 -U 用户名 -p port_no -d 数据库 -f /tmp/myfile.sql &> logfile01.txt
在 FreeBSD 上,这会引发错误:
"Invalid null command"
请推荐。
此重定向适用于 bash
&> logfile01.txt
,但它在 csh 中不起作用,它是 FreeBSD 中的 default shell。
# set | grep shell
shell /bin/csh
# ls -la &> logfile01.txt
Invalid null command.
默认情况下未安装 Bash。你可以install它
pkg install bash
并将其配置为 default shell。
如果您仅在命令行上使用它,则无需更改 shell。
要将 stdout 和 stderr 重定向到 C-Shell synthax 中的文件,只需使用 ">& filename".
不同的故事是,如果你想写 shell 脚本。 Bourne Shell 及其克隆(例如 Bash)更适合编写脚本。请参阅此 Unix 常见问题解答 "Csh Programming Considered Harmful":http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
在 RHEL 上,以下命令有效: psql -h 主机名 -U 用户名 -p port_no -d 数据库 -f /tmp/myfile.sql &> logfile01.txt
在 FreeBSD 上,这会引发错误: "Invalid null command"
请推荐。
此重定向适用于 bash
&> logfile01.txt
,但它在 csh 中不起作用,它是 FreeBSD 中的 default shell。
# set | grep shell
shell /bin/csh
# ls -la &> logfile01.txt
Invalid null command.
默认情况下未安装 Bash。你可以install它
pkg install bash
并将其配置为 default shell。
如果您仅在命令行上使用它,则无需更改 shell。 要将 stdout 和 stderr 重定向到 C-Shell synthax 中的文件,只需使用 ">& filename".
不同的故事是,如果你想写 shell 脚本。 Bourne Shell 及其克隆(例如 Bash)更适合编写脚本。请参阅此 Unix 常见问题解答 "Csh Programming Considered Harmful":http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/