我正在尝试运行以下命令:
$ psql -d template_postgis -f /usr/local/pgsql-9.1/share/contrib/postgis-2.0/postgis.sql
它会产生大量的错误输出,其中我只能看到我的shell中的结尾 - 我需要看到开始找出出错的地方。
...
psql:/usr/local/pgsql-9.1/share/contrib/postgis-2.0/postgis.sql:6065: ERROR: current transaction is aborted, commands ignored until end of transaction block
psql:/usr/local/pgsql-9.1/share/contrib/postgis-2.0/postgis.sql:6075: ERROR: current transaction is aborted, commands ignored until end of transaction block
psql:/usr/local/pgsql-9.1/share/contrib/postgis-2.0/postgis.sql:6081: ERROR: current transaction is aborted, commands ignored until end of transaction block
但是,如果我尝试将消息发送到文本文件:
$ psql -d template_postgis -f /usr/local/pgsql-9.1/share/contrib/postgis-2.0/postgis.sql > error.txt
文本文件只包含三个命令:
SET
BEGIN
ROLLBACK
那么为什么不是所有输出都被发送到文本文件,我怎样才能看到所有输出?
dash
一个人会解析&
作为终结者这样做ls &> foo
成为2个命令:ls在后台运行,foo被截断。使用该构造是不安全的。就个人而言,我认为破折号语义是正确的,但是足够的shell与这种情况下的语言规范冲突,“模糊”是描述解析而不引发邪恶的火焰战争的唯一合理的形容词。避免'&>'