저는 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는 인용한 내용을 그대로 두고 변수에 직접 혼합합니다.
인용에 대한 자세한 내용은 다음에서도 확인할 수 있습니다.배쉬 해커 위키.