sqlite -echo test.sqlite < test44.sql > test44.out 1>&2.
sqlite -echo test.sqlite < test44.sql > test44.out 2>&1.
即使交换两个 I/O 重定向器,输出也没有不同。
答案1
您可以1>&2
将标准输出重定向到标准错误所在的位置。这并不常见。
与2>&1
你相反,这是更常见的。
这样做:
$ echo "hello world" >hello.out 1>&2
hello world
$ cat hello.out
我在错误流上收到“hello world”,但>hello.out
也创建了一个空hello.out
文件(或截断它,如果存在)。
这是“获胜”的行上的最后一个重定向,但在执行命令之前,从左到右解析重定向时会创建该文件。
在你的情况下(.
你的命令行末尾的那些可能是一个错字,对吧?):
$ sqlite -echo test.sqlite <test44.sql >test44.out 1>&2
echo
这应该以与我上面的测试相同的方式工作,因为sqlite
(或者至少sqlite3
在我正在测试的 OpenBSD 上),将执行的 SQL 命令输出到标准输出。