web-dev-qa-db-fra.com

Est-il possible de savoir quelle saveur reconnue j'utilise avec un terminal?

J'ai un ensemble de fonctions dans le script bash que je veux exécuter uniquement sur des goûts particuliers d'Ubuntu. Par exemple, je veux exécuter ce qui suit si je suis sous Unity:

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

mais ce qui suit si j'utilise Ubuntu GNOME:

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

et de la même façon, différentes commandes pour différentes versions d'Ubuntu.

J'ai essayé de voir le contenu de /etc/os-release, mais il ne donne aucune information sur la saveur d'Ubuntu. Ce qui suit est exécuté sur 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/"

Est-il possible de savoir quelle saveur reconnue j'utilise avec un terminal? Je préférerais une solution prête à l'emploi, sans installer d'autres packages pour les environnements en direct et installés. Il est possible de rechercher quels paquets sont installés, mais je préférerais ne pas suivre cette voie, bien que vous puissiez nous donner une réponse dans ce sens.

7
Aditya

C'est la commande que j'utilise. Cela fonctionne pour moi tout le temps:

cat /var/log/installer/media-info 

Sortie (mon système) indique correctement que je suis sous Kubuntu

Kubuntu 14.04 LTS "Trusty Tahr" - Beta AMD64 (20140326.2)
11
cshubhamrao

Peut-être pas une saveur comme Kubuntu , Xubuntu , Lubuntu etc. Parce que Oli & terdon commentaires, vous pouvez installer Kubuntu mais en cours d'exécution XFCE en tant que bureau.

Ainsi, vous pouvez obtenir la valeur de la variable d’environnement XDG_CURRENT_DESKTOP pour connaître le type d’exécution du poste de travail actuel.

par exemple:

  • echo $XDG_CURRENT_DESKTOP

Remarque:
Les valeurs de la variable peuvent être Unity, GNOME, XFCE, KDE, LXDE, Pantheon (élémentaire os).

J'espère que cela t'aides.

6
Roman Raguet

Définir les deux. Réglez tout. Feu et oublie.

Les réglages sont assez exclusifs pour ne pas affecter d’autres choses, donc ça devrait être sûr ... Et c’est beaucoup, beaucoup plus facile à faire que de devoir déterminer ce qui est en train de exécuter ... Il est possible de déterminer ce qui est installé, mais ce n'est pas une indication de ce que l'utilisateur utilise réellement.

2
Oli

Le if suivant vous indiquera si vous utilisez Unity ou non:

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

De la même manière, vous pouvez vérifier si vous utilisez GNOME ou d'autres versions. L'important est de savoir quel nom de partie du processus que vous utilisez pour la première grep. Vous devez distinguer un processus spécifique qui ne s'exécute que dans le style qui vous intéresse.

0
Radu Rădeanu