psql의 대화식 출력을 위해 호출기 끄기


34

PostgreSQL 8.3에서 9.0으로 전환했습니다. 아마도 새로운 기능이거나 구성 변경 일 수 있지만, 이제 명령 (예 : 등 \d tablename)의 출력 이 가시적 인 수직 공간을 초과하면 psql은와 비슷한 것을 통해 출력을 파이프하는 것처럼 보입니다 less. 이 동작을 해제하는 방법을 찾지 못했습니다. 어떤 충고? 감사.

추신 : 나는 PuTTY를 사용하여 버퍼를 스크롤하고 Shift+PgUp/PgDn있으므로 psql의 페이징이 필요하지 않습니다. 또한 qpsql의 페이징을 누르면 출력이 화면에서 완전히 사라집니다 ( lessbash에서 실행 한 것처럼 ). 일반적인 유스 케이스 관점에서 잘못되었습니다.


당신이 구글에서 여기에 호출기를 스크롤하려고한다면, 그것은 Space시도한 것처럼 n 또는 PgDn 또는 아래쪽 화살표가 아닙니다.
누 메논

답변:


34

이에 대한 문서가 있습니다.

psql 매뉴얼 의 \ pset 섹션에서 :

휴대용 소형 무선 호출기

조회 및 psql 도움말 출력에 호출기 프로그램 사용을 제어합니다. 환경 변수 PAGER가 설정된 경우 출력이 지정된 프로그램으로 파이프됩니다. 그렇지 않으면 플랫폼 종속 기본값 (예 : more)이 사용됩니다.

호출기 옵션이 해제되어 있으면 호출기 프로그램이 사용되지 않습니다. 호출기 옵션이 켜져있는 경우, 호출기는 적절한 경우, 즉 출력이 터미널에 있고 화면에 맞지 않을 때 사용됩니다. 호출기 옵션을 항상으로 설정할 수 있으므로 호출기가 화면에 맞는지 여부에 관계없이 모든 터미널 출력에 사용됩니다. 값이없는 \ pset pager는 호출기 사용을 켜거나 끕니다.


9
고맙습니다. 완전한 솔루션은 다음과 같습니다 psql -P pager..
유리 Ushakov

3
~ / .psqlrc 파일에 옵션을 넣어 매번 입력하지 않아도 될 것 같습니다.
Sven

어쨌든 인수를 적은 것으로 전달 하시겠습니까?
snapfractalpop 2011

3
나는 또한 유리의 문제에 부딪쳤다. 위에서 설명한대로. \pset pagerpsql에서 출력이 페이저로 이동할지 여부를 전환 할 수 있습니다 . 그러나 호출기를 사용할 수 있어야하고 종료 할 때 화면에서 출력이 사라지지 않아야합니다. 대답은 호출기로 'less'대신 'more'를 사용하는 것입니다. 쉘에서 PAGER 환경 변수를 설정하거나 ~ / .psqlrc 파일에 PAGER 환경 변수를 추가하여이를 수행 할 수 있습니다.
Michael Rush

4
@MichaelRush는 : 세트 PAGER할 수 less -X있으며 화면을 취소하지 않습니다.
Sven

21

스위처를 사용해보십시오 :

database_name=# \pset pager
Pager is used for long output.
database_name=# \pset pager
Pager usage is off.

3
또한 \pset pager [on|off]지속적인 결과를 위해.
lolesque


3

~ / .psqlrc에 아래 코드를 추가하여 동작을 유지하십시오.

\ pset 호출기 끄기


0

psql셸에서 사용할 때 호출기를 끄려면

psql -P pager=off ...

PAGER환경 변수를 내보낼 수도 있으므로 모든 명령문에 옵션을 추가 할 필요는 없습니다. 현재 쉘을 닫을 때까지 설정을 유지합니다.

export PAGER=
psql ...

마지막으로, 기억하기 쉬운 해결 방법 : 출력을 통해 파이프 cat하면 기본 호출기가 비활성화됩니다.

psql ... | cat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.