J'essaie donc de créer un bash / exécutable, et j'ai besoin de connaître le numéro de version d'Ubuntu sur le système. Toutes les façons dont j'ai trouvé en ligne consistent lsb_release -r
, mais je ne peux pas les afficher dans une variable.
Existe-t-il un moyen d'obtenir la version actuelle d'Ubuntu et de l'enregistrer en tant que variable dans un exécutable shell?
command-line
bash
scripts
a.mosallaei
la source
la source
Réponses:
Devrait faire l'affaire.
Pour la partie numérique, ajoutez seulement ceci:
Le
lsb-release
fichier des variables/usr/bin/lsb_release
est un script Python. C'est un court script qui sert de bonne introduction au langage python. Comme d'autres l'ont mentionné, un moyen plus court d'obtenir uniquement le numéro de version est d'utiliserlsb_release -sr
.Le
/etc/lsb-release
fichier définit les variables d'environnement avec les mêmes informations fournies par lalsb_release -a
commande:Vous pouvez inclure ces variables d'environnement à tout moment à l'aide de
. /etc/lsb-release
. Pour tester dans votre terminal:la source
Release: 18.04
. Mais existe-t-il un moyen d'obtenir simplement le numéro? Je veux pouvoir utiliser cette variable dans une fonction if / else du script. Le but de if / else est de télécharger la version correcte de mon application pour la distribution d'ubuntu.Une alternative consiste à utiliser le
/etc/os-release
fichier à la place. Ceci est formaté comme une liste de variables shell:Donc, une façon simple de l'analyser est de simplement
source
le fichier:Pour éviter de définir toutes ces variables inutilement, vous pouvez source le fichier dans un sous - shell , faire écho à la variable dont vous avez besoin et quitter le sous-shell:
Alternativement, vous pouvez toujours analyser directement le fichier:
la source
La
lsb_release
commande prend en charge une option-s
(ou--short
) pour imprimer uniquement les informations que vous demandez et non l'en-tête qui indique le type d'informations.Pour obtenir uniquement le numéro de version, il suffit donc d'exécuter:
Par exemple, sur Ubuntu 18.04 LTS, cela génère:
Comme avec la méthode dans la réponse de WinEunuuchs2Unix , il est toujours raisonnable d'utiliser la substitution de commandes pour affecter cette sortie à une variable shell. Supposons que vous vouliez que la
ver
variable contienne le numéro de version:Avec
-s
, il n'y a pas besoin d'analyser le nombre aveccut
,sed
,grep
,awk
, des formes plus complexes de l' expansion des paramètres , ou similaires.Dans cette utilisation, les
"
"
guillemets sont facultatifs, mais je suggère généralement de citer l' expansion des paramètres et d'autres extensions du shell, sauf lorsqu'il y a une raison de ne pas le faire.la source
lsb_release
Commandes courtes et simples .Pour imprimer uniquement la version
Production:
Pour imprimer la description
Production:
À propos des drapeaux utilisés ici:
la source