스크립트가 실행될 때 자동 해상도를 출력하도록 변수를 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
연결이 실패할 수 있으니 주의하시기 바랍니다.