답변:
명령을 발행하면
stty size
현재 터미널의 크기를 행과 열로 반환합니다. 예:
$ stty size
24 80
다음과 같이 변수로 행과 열을 읽을 수 있습니다 ( Janis의 comment 덕분에 ).
$ read myrows mycols < <(stty size)
픽셀 단위의 크기를 얻으려면 화면 해상도에 대한 지식이 필요 stty
하며 그러한 정보에 직접 액세스 할 수는 없다고 생각 합니다.
bash
echo
read
ksh
bash
read myrows mycols < <( stty size )
A의 데스크톱 환경 , 당신은 X를 사용하고 있고 xwininfo
유틸리티는 픽셀 단위로 창 크기를 표시 할 수 있습니다. 바탕 화면에서 실행 (그리고 예를 들어, 원격으로 연결되지 않음)하는 경우 또한, 터미널 에뮬레이터 변수 제공 $WINDOWID
이 매개 변수로 사용할 수 있습니다 xwininfo
예를,
xwininfo -id $WINDOWID
목록 목록을 얻으십시오.
xwininfo: Window id: 0xc00025 "uxterm"
Absolute upper-left X: 65
Absolute upper-left Y: 167
Relative upper-left X: 0
Relative upper-left Y: 22
Width: 624
Height: 577
Depth: 24
Visual: 0x22
Visual Class: TrueColor
Border width: 1
Class: InputOutput
Colormap: 0x21 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +65+167 -589+167 -589-256 +65-256
-geometry 103x42+65+145
이 예에서와 라인 Width
과 Height
의 크기 의 화소 . 마지막 줄 -geometry
은 문자 크기 (왼쪽 위 모서리 위치 (픽셀))를 나타냅니다.
창 크기 를 조정 하면 resize
프로그램은 줄과 열의 수를 보여줍니다. 이 예에서는
$ resize
set noglob;
setenv COLUMNS '103';
setenv LINES '42';
unset noglob;
질문은 정보가 어떻게 사용될 수 있는지를 나타내지는 않았지만, 출력은 예측 가능한 형식의 텍스트이므로 쉽게 스크립팅됩니다. 다음은 awk를 사용하는 간단한 예입니다.
#!/bin/sh
if [ -n "$WINDOWID" ]
then
xwininfo -id $WINDOWID | awk '
BEGIN { px = 0; py = 0; chars = "?x?"; }
/Height:/ { py = $2; }
/Width:/ { px = $2; }
/-geometry/ { chars = $2; sub("+.*","",chars); }
END { printf "%dx%d pixels, %s chars\n", py, px, chars; }'
else
printf '? no WINDOWID found\n'
fi
인쇄
577x624 pixels, 103x42 chars