É possível saber qual o sabor reconhecido que estou executando usando o terminal?

5

Eu tenho um conjunto de funções no script bash que eu quero rodar apenas em sabores específicos do Ubuntu. Por exemplo, quero executar o seguinte, se eu estiver executando o Unity:

gsettings set com.canonical.indicator.datetime show-week-numbers true

mas o seguinte, se eu estiver executando o Ubuntu GNOME:

gsettings set org.gnome.shell.calendar show-weekdate true

e da mesma forma, diferentes comandos para diferentes sabores do Ubuntu.

Eu tentei ver o conteúdo de /etc/os-release , mas ele não deu nenhuma informação sobre o sabor do Ubuntu. O seguinte é quando executado no Ubuntu GNOME:

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="14.04, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

É possível saber qual o sabor reconhecido que estou executando usando o terminal? Eu preferiria uma solução que funcione imediatamente, sem instalar nenhum outro pacote para ambientes ao vivo e instalados. Procurar por quais pacotes estão instalados é uma possibilidade, mas eu preferiria não seguir esse caminho, embora você seja bem-vindo para dar uma resposta nessa direção.

    
por Aditya 21.04.2014 / 17:31

4 respostas

10

Este é o comando que eu uso. Funciona para mim o tempo todo:

cat /var/log/installer/media-info 

Output (meu sistema) Informa corretamente que estou executando o Kubuntu

Kubuntu 14.04 LTS "Trusty Tahr" - Beta amd64 (20140326.2)
    
por cshubhamrao 12.05.2014 / 14:42
6

Talvez não seja um sabor como Kubuntu , Xubuntu , Lubuntu etc. Porque como Oli & amp; terdon comentários você pode instalar o Kubuntu mas executando XFCE como Desktop.

Assim, você pode obter o valor da variável de ambiente XDG_CURRENT_DESKTOP para saber o que a área de trabalho atual está executando.

por exemplo:

  • echo $XDG_CURRENT_DESKTOP

Nota:
Os valores da variável podem ser Unity, GNOME, XFCE, KDE, LXDE, Panteão (Elementary os).

Espero que isso ajude.

    
por Roman Raguet 12.05.2014 / 15:24
2

Defina ambos. Defina tudo. Fogo e esqueça.

As configurações são exclusivas o suficiente para não afetar outras coisas, então deve ser seguro ... E é muito, muito mais fácil de fazer do que precisar descobrir o que está sendo executado ... o que é instalado é possível, mas isso não é uma indicação do que o usuário realmente usa.

    
por Oli 21.04.2014 / 17:36
0

O seguinte if mostrará se você está executando o Unity ou não:

if [[ "$(ps -ef | grep unity | grep $USER | grep -v grep)" =~ "unity" ]]; then 
    echo "I'm running Unity"; 
fi

Da mesma forma, você pode verificar se está executando o GNOME ou outros tipos de sabores. O importante é o nome (parte) do processo que você usa para o primeiro grep . Você deve distinguir um processo específico que é executado o tempo todo apenas no sabor sobre o qual você está interessado.

    
por Radu Rădeanu 21.04.2014 / 17:54