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 명령이 표준 출력으로 출력되기 때문입니다.