이것은 Unity 알림 패널에 항목을 추가하는 방법보다 명령 줄 명령 질문을 사용하는 방법입니다.
com.canonical.Unity.Panel systray-whitelist에 새 항목을 추가하려면 한 줄 CLI가 있어야합니다.
이를위한 표준 절차는 다음과 같습니다.
sudo gsettings get com.canonical.Unity.Panel systray-whitelist
우리는 얻는다
['JavaEmbeddedFrame', 'Wine', 'Skype']
그런 다음 두 번째 명령을 수행합니다
sudo gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'shutter']"
그것은 훌륭하지만 모두 사람들이 첫 번째 줄의 결과를 복사하여 붙여 넣기를 요구합니다. 스크립트를 작성하려면 하나의 명령으로하고 싶습니다.
지금까지 이것은 내가 가진 것입니다 :
sudo gsettings set com.canonical.Unity.Panel systray-whitelist | gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/']$/,'shutter']/" | awk 'NF{print "\"" $0 "\""}'
뭔가 빠진 것 같습니다.
첫째, 현을 gsettings set 기능으로 올바르게 배관하고 있는지 확실하지 않습니다. 둘째, gsettings get의 출력을 올바르게 구문 분석하는 것으로 생각하지만 sed를 사용하여 수정 된 결과 주위에 “”를 추가하는 방법을 찾지 못했기 때문에 다른 awk 명령을이 엉망으로 파이프해야했습니다.
도와주는 사람에게 감사합니다.
답변
오류 후 오류가 발생하면 마침내 따옴표를 수락하지 않는 이유를 알았습니다. 실제 변수에 따옴표를 넣을 수 있으며 실제 명령에 따옴표를 입력 할 필요가 없습니다.
이것은 작동합니다 :
gsettings set com.canonical.Unity.Panel systray-whitelist "$(gsettings get com.canonical.Unity.Panel systray-whitelist | sed -e "s/]$/, 'shutter']/")"
또한이 예제가 작동하려면 예제에서 ‘sed -e “s /’] $ /를 제거해야합니다.
나중에 편집 : 그런데, sudo로 gsettings를 실행하지 마십시오 … 작동하지 않습니다.