화면 회전 스크립트 문제

화면 회전 스크립트 문제

저는 Dell XPS 12 컨버터블 노트북/태블릿에서 Antergos Linux 및 Gnome 3.18.2를 실행하고 있으며 화면 회전을 더욱 편리하게 만들기 위해 노력하고 있습니다.

다음 스크립트 버전을 추출했습니다.우분투 포럼 게시물내 표시 이름 등과 일치하도록 수정했습니다. 각 줄은 개별적으로 실행될 때 예상되는 결과를 가지지만 실제 스크립트를 실행하면 아무 일도 일어나지 않습니다. 오류도 없고, 화면 회전도 없고, 아무 일도 일어나지 않습니다.

 #!/bin/sh
rotation='xrandr -q --verbose|grep eDP1|cut -b45-50'
if [[ $rotation = "normal" ]] ;
then
  xrandr -o right
else
  xrandr -o normal
fi

이것이 예상대로 작동하지 않는 이유에 대한 아이디어가 있습니까?

미리 감사드립니다!

답변1

빠른 솔루션


설정 방법에 따라 rotation변수에 출력을 얻으려는 쓰기 명령이 포함됩니다.
당신이 원하는 것은 command substitution명령의 출력을 에 저장하는 것 입니다. 또는 를 rotation사용하여 rotation=$(xrandr -q ...)이를 수행 할 수 있습니다 rotation=`xrandr -q ...`.

배경


명령 대체는 서브쉘에서 명령을 실행하고 해당 출력을 stdout변수에 저장합니다. 이것은 매우 흔한 일이며 개인적으로 를 사용하는 것을 선호합니다 $().

command substitution더 읽어보실 수 있습니다배쉬 해커 위키.

작은 따옴표(강한 따옴표)를 사용하면 bash에게 따옴표 안의 어떤 것도 확장하지 않도록 지시할 수 있습니다. 예를 들어 를 사용하면 a='$FOO'$a유지합니다 $FOO. Bash는 인용한 내용을 그대로 두고 변수에 직접 혼합합니다.

인용에 대한 자세한 내용은 다음에서도 확인할 수 있습니다.배쉬 해커 위키.

관련 정보