질문

질문

~/.bashrc

Terminal() {
    TerminalDarkProfile="b1dcc9dd-5262-4d8d-a863-c897e6d979b9"
    TerminalLightProfile="3dd28c15-6ba4-4ba0-8289-ab023e6c88fc"

    Gsetting="org.gnome.Terminal.ProfilesList"
    [[ "${1}" == 'Light' ]] && gsettings set "${Gsetting}" default "${TerminalLightProfile}"
    [[ "${1}" == 'Dark' ]] && gsettings set "${Gsetting}" default "${TerminalDarkProfile}"
    gsettings get "${Gsetting}" default
}

bash 터미널에 입력하면 Terminal Light출력이 없으며 Gnome 터미널 색상이 변경되지 않습니다.

하지만 수동으로 함수를 터미널에 붙여넣으면 다음과 같습니다.

$ Terminal() {
    TerminalDarkProfile="b1dcc9dd-5262-4d8d-a863-c897e6d979b9"
    TerminalLightProfile="3dd28c15-6ba4-4ba0-8289-ab023e6c88fc"

    Gsetting="org.gnome.Terminal.ProfilesList"
    [[ "${1}" == 'Light' ]] && gsettings set "${Gsetting}" default "${TerminalLightProfile}"
    [[ "${1}" == 'Dark' ]] && gsettings set "${Gsetting}" default "${TerminalDarkProfile}"
    gsettings get "${Gsetting}" default
}
$ Terminal Light
'3dd28c15-6ba4-4ba0-8289-ab023e6c88fc'

그러면 gsettings가 작동하고 gnome 터미널 프로필이 실제로 변경되었음을 확인할 수 있습니다!

질문

왜 이런 일이 발생합니까? 정의된 스크립트 또는 bash 함수 내부에서 gsettings를 변경하는 방법~/.bashrc


편집하다

$ type Terminal
bash: type Terminal: command not found
$ Terminal Dark

놀랐지 type Terminal: command not foundTerminal Dark출력이 나오지 않습니다!

또한:

cat Theme.sh
#!/usr/bin/env bash
set -xv
echo $DBUS_SESSION_BUS_ADDRESS
whoami
gsettings set org.gnome.desktop.interface color-scheme 'prefer-light'
gsettings get org.gnome.desktop.interface color-scheme
$ bash ./Theme.sh 
echo $DBUS_SESSION_BUS_ADDRESS
+ echo unix:path=/run/user/1000/bus
unix:path=/run/user/1000/bus
whoami
+ whoami
lamy
gsettings set org.gnome.desktop.interface color-scheme 'prefer-light'
+ gsettings set org.gnome.desktop.interface color-scheme prefer-light
gsettings get org.gnome.desktop.interface color-scheme
+ gsettings get org.gnome.desktop.interface color-scheme
'prefer-light'
$ gsettings get org.gnome.desktop.interface color-scheme
'prefer-dark'

gsettings get스크립트를 실행한 직후에 다양한 값이 표시되는 것을 볼 수 있습니다 !

관련 정보