하나의 정확한 이미지를 배경 화면으로 설정하는 스크립트가 있으며 여전히 동일한 이미지인지 매번 실행할 때마다 확인하고 싶습니다. 그렇지 않은 경우 배경 화면을이 이미지로 다시 변경할 것인지 묻습니다. 더 큰 프로젝트의 일부이며 현재는 다음과 같이 작동합니다.
나는 인터넷을 통해이 질문에 대한 답을 검색했습니다. 불행히도 대부분의 주제는 우분투와 관련이 있으며 전혀 도움이되지 않습니다. 배경 찾기 명령을 시도했지만 합법적 인 것이 보이지 않으며 오, 나열된 디렉토리의 대부분을 검색했습니다. .cache에서도 검색했지만 여전히 아무것도 없습니다.
다음으로 파일을 설정할 수있는 경우
gsettings set org.gnome.desktop.background picture-uri file:///path/to/the/file
그런 다음 파일을 가져올 수 있습니다.
gsettings get org.gnome.desktop.background picture-uri
그것은 'file:///usr/share/images/desktop-base/desktop-background.xml'
멋지지만 다른 쉘 명령에 대한 인수로 직접 사용하기 전에 구문 분석이 필요한 문자열을 제공합니다 . 따라서 다음과 같이 따옴표와 file://
부분을 쉽게 제거 할 수 있습니다 cut
.
gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1
(참고 : 반환 된 파일은 실제로 저에게 XML 파일이지만 GNOME을 사용하지 않습니다. 따라서 이것이 라이브 시스템에서 어떻게 작동하는지 모르겠습니다. 여기에서 수행해야하는 다른 처리 단계가있을 수 있습니다. 파일 비교를 시작할 수 있습니다.)
비교하려는 파일의 이름을 이미 알고 cmp
있으므로이 두 파일을 비교하는 데 사용할 수 있습니다 .
cmp my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)"
cmp
0
파일이 동일하면 (true) 반환 값을 설정 하고 다르거 나 문제가 발생한 경우 0이 아닌 값 (false)을 설정합니다. ||
이전 명령이 0이 아닌 (거짓)을 반환 한 경우에만 명령을 실행하는 연산자를 사용하여 다음에 수행 할 작업을 결정하는 데 사용할 수 있습니다 . 우리는 또한의 출력을 억제 할 수 cmp
와 -s
스위치. 예를 들어 일반 크론 작업으로 실행할 수있는 다음 명령을 제공합니다.
cmp -s my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)" || gsettings set org.gnome.desktop.background picture-uri file:///full/path/to/my/file.jpg
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다