화면 상태 읽기

화면 상태 읽기

Fedora 22에서 다음 명령을 사용하여 화면 회전 상태를 읽은 적이 있습니다.

status=$(xrandr --verbose | grep LVDS1 | awk '{print $6}'

출력은 비슷한 것입니다 noraml. inverted다른 모니터/프로젝터와 화면을 공유하는 경우에도 작동합니다. Fedora 23으로 업데이트한 후 노트북을 외부 모니터나 프로젝터에 연결할 때마다 라인의 정보가 xrandr약간 변경되고 정보를 제공하지 않는 $6섹션이 나타나서 Get Monitor의 상태를 변경해야 합니다 . 첫 번째 문자를 테스트하고, 그렇다면 다른 출력을 사용하여 문제를 해결했습니다 . 그건,(normal(normal left inverted right x axis y axis)$6$5(

testvalue=$(xrandr --verbose | grep LVDS1 | awk '{print $6}')
[ ${testvalue:0:1} == "(" ] && status=$(xrandr --verbose | grep LVDS1 | awk '{print $5}') || status=$(xrandr --verbose | grep LVDS1 | awk '{print $6}')

이로써 현재 작업이 완료되었습니다.내 질문은 이 문제를 보다 안정적인 방법으로 해결하는 방법입니다.

답변1

xrandr | awk -F'(' '/^LVDS1/{ split($2,a," "); print a[3]}'

xrandr은 --verbose 없이 이 줄을 인쇄합니다.

필드 구분자로 "(" 사용

/^LVDS1/과 일치하는 행만 보기

""를 구분 기호로 사용하여 두 번째 필드를 배열(a라는 이름)로 분할합니다.

마지막으로 a의 세 번째 요소를 인쇄합니다.

관련 정보