Bash 쉘이 Gnome 터미널 창의 너비를 자동으로 인식할 수 있습니까?

Bash 쉘이 Gnome 터미널 창의 너비를 자동으로 인식할 수 있습니까?

/bin/lessUbuntu 14.04.3 LTS 데스크탑 운영 체제의 기본 호출기(변수가 설정되지 않음) $PAGER이며 gnome-terminal 3.6.2-ubuntu1을 사용합니다.

예를 들어, 다음을 시도하면:

$ man man

표시된 출력은 현재 Gnome 터미널 창의 너비에 맞습니다. 문제 없습니다. 하지만 내가 이렇게 하면:

$ man man | egrep regex

출력은 터미널 창의 너비를 자동으로 인식하지 않습니다. 터미널 메뉴 편집 > 프로필 기본 설정 > 기본 크기에서 83개 열을 설정할 때 일부 줄이 터미널 너비에 맞지 않고 너비에 맞게 올바르게 조정되지 않았습니다. 그 결과 여러 가지 사례가 생겼습니다.

<standard input>:981: warning [p 8, 0.5i, div `3tbd1,0', 0.0i]: cannot adjust line

(위 경고의 일부 문자는 경고마다 다릅니다. 아마도 출력의 다른 위치에 있는 잘못된 출력 행을 가리키기 때문일 것입니다.)

명령을 사용할 때는 이런 일이 발생하지 않으므로 호출기에는 오류가 없는 것 같습니다 man man.

Gnome 터미널 창 너비를 준수하는 측면에서 문제를 일으키는 것은 파이프입니까 아니면 파이프의 rhs입니까? 이 문제를 해결할 수 있는 방법이 있나요?

편집 1: 해결책이 있나요? 세션 수준에서, 즉 자동으로, 즉 stdout으로 인쇄할 cmd 줄을 입력할 때마다 Gnome 터미널의 현재 창 너비를 확인할 필요가 없습니까?

답변1

나는 사용한다:

 echo $COLUMNS

stty 대신에. 아마도 그것은 당신에게도 효과가 있을 것입니다. 아마도 그것은 stty에 달려있을 것입니다.

답변2

주요 질문에 대답하려면 예, 터미널 창 크기는 bash 쉘에서 인식됩니다. 명령은 stty모든 쉘에서 이를 확인하는 한 가지 방법입니다.

$ stty -a|head -1
speed 38400 baud; rows 49; columns 90; line = 0;
$ stty size
49 90
$

관련 정보