bash의 xrandr에 변수 전달

bash의 xrandr에 변수 전달

스크립트가 실행될 때 자동 해상도를 출력하도록 변수를 xrandr에 전달하려고 합니다.

#!/bin/bash
DISPLAY=$(xrandr | grep ' connected' | cut-d' ' -f1)
xrandr --output "$DISPLAY" --auto

출력됩니다

모니터 DisplayPort-0을 열 수 없습니다.

아래와 같이 변수를 변경하면..

DISPLAY=DisplayPort-0

여전히 같은 오류가 발생합니다.

하드코딩하거나 실제 명령을 다음과 같이 실행하는 경우에만...

xrandr --output DisplayPort-0 --auto

예상대로 작동할까요? 어떤 아이디어가 있나요? 내가 의아해하는 점은 xrandr이 bash 스크립트에서 변수를 허용하지 않는 이유입니다.

답변1

불행하게도 이름은 DISPLAY올바른 X 서버를 가리키도록 예약되어 있습니다. 새 셸을 열고 내용을 검사합니다.

$ echo $DISPLAY
:0

변수에는 다른 이름을 사용하십시오 DISPLAY. 그건 그렇고, 이것이 스크립트에서 소문자 변수 이름을 사용하는 것이 권장되는 이유이기도 합니다. 따라서 귀하의 경우에는 다음과 같을 수 있습니다:

display=$(xrandr | grep ' connected' | cut -d' ' -f1)

또한 동시에 2개 이상의 화면이 연결될 수 있으며, 이 경우 xrandr --output "$display" --auto연결이 실패할 수 있으니 주의하시기 바랍니다.

관련 정보