답변:
페이지 매김을 비활성화 하고 출력을 유지 하려면 다음을 사용하십시오.
\pset pager off
이 설정을 기억하려면 ~ / .psqlrc에 추가하십시오 .
psql 매뉴얼을 참조하십시오 .
이전 버전의 Pg에서는 토글 일 뿐이므로 \pset pager
쿼리 출력을 완전히 억제하려면 스크립트 \o /dev/null
에서를 사용 하십시오 psql
.
psql
의 정보 출력 을 억제하려면 환경에서 실행 -q
하거나 QUIET=1
환경에서 설정 하십시오.
결과를 멀리 던져하려면 리디렉션 할 수 있습니다 stdout
에 /dev/null
와 :
psql db -f sql.sql >/dev/null
다음을 사용하여 stdout 및 stderr을 모두 리디렉션 할 수 있습니다.
psql db -f sql.sql >&/dev/null
그러나 뭔가 잘못되었다고 경고 할 수있는 오류 정보를 버릴 것이므로 권장하지 않습니다. 또한 결과를 생성하여 버리고 있습니다. 이는 비효율적입니다. 쿼리를 조정하여 처음부터 생성하지 않는 것이 좋습니다.
나는 이것도 찾고 있었고, ServerFault 와 비슷한 질문 에서 길을 찾았습니다 .
psql -P pager=off <other params>
출력을 억제하지 않고 페이징을 끕니다.
쉘 인 bash 에는 출력 데이터를 리디렉션 할 수있는 2 개의 스트림 이 있습니다 : stdout 및 stderr.이 출력은 어딘가에 리디렉션되어야하기 때문에 리눅스는 / dev / null을 통해 도달 할 수있는 특정 'discard everything'노드를 가지고 있습니다. 당신이 보낸 모든 것은 공허로 사라질 것입니다.
(쉘에도 입력 스트림이 있지만 출력 억제를 요청했기 때문에 여기서 무시합니다.)
이 스트림은 stdout의 경우 1, stderr의 경우 2로 숫자로 표시됩니다.
따라서 stdout을 리디렉션하려면 <
and >
연산자 를 사용하여 수행하십시오 (기본적으로 데이터가 흐르는 위치)
stdout을 억제하고 싶다고 가정하자 (/ dev / null로 리디렉션) :
psql db -f sql.sql > /dev/null
보시다시피 이것이 stdout이 기본값이며, 작성하려는 스트림 번호를 사용하려는 경우 스트림 번호가 사용되지 않은 것입니다
psql db -f sql.sql 1> /dev/null
stderror (스트림 번호 2)를 억제하려면 다음을 사용하십시오.
psql db -f sql.sql 2> /dev/null
stderror를 stdout으로 변환하는 것과 같이 한 스트림을 다른 스트림으로 리디렉션 할 수도 있습니다. 이는 모든 출력을 어딘가에 정기적이고 오류로 저장하려는 경우에 유용합니다.
psql db -f sql.sql 2>&1 > log.txt
사이에 공백이있을 수 없습니다 2>&1
마지막으로 그리고 때로는 가장 흥미로운 것은 &>
'완벽하게 조용한'원할 때를 사용하여 모든 출력을 억제 할 수 있다는 사실입니다.
psql db -f sql.sql &> /dev/null
psql -U user -P pager=off -d database -c 'SQL';
PAGER="/dev/null" psql db -P pager=always -f sql.sql
항상 출력 을 강제 종료해야 한다고 생각합니다 .