Ich versuche also, eine Bash / ausführbare Datei zu erstellen, und ich muss die Versionsnummer von Ubuntu auf dem System kennen. Alle Möglichkeiten, die ich online gefunden habe, bestehen aus lsb_release -r
, ich kann dies jedoch nicht in eine Variable ausgeben.
Gibt es eine Möglichkeit, die aktuelle Version von Ubuntu abzurufen und als Variable in einer ausführbaren Shell-Datei zu speichern?
command-line
bash
scripts
a.mosallaei
quelle
quelle
Antworten:
Sollte den Trick machen.
Fügen Sie für den numerischen Teil nur Folgendes hinzu:
Die
lsb-release
Variablendatei/usr/bin/lsb_release
ist ein Python-Skript. Es ist ein kurzes Skript, das als gute Einführung in die Python-Sprache dient. Wie bereits erwähnt, ist ein kürzerer Weg, um nur die Versionsnummer zu erhalten, mitlsb_release -sr
.Die
/etc/lsb-release
Datei definiert Umgebungsvariablen mit denselben Informationen, die vomlsb_release -a
Befehl bereitgestellt werden :Sie können diese Umgebungsvariablen jederzeit mit einschließen
. /etc/lsb-release
. So testen Sie in Ihrem Terminal:quelle
Release: 18.04
. Gibt es jedoch eine Möglichkeit, nur die Nummer zu erhalten? Ich möchte diese Variable in einer if / else-Funktion im Skript verwenden können. Der Zweck des if / else ist es, die richtige Version meiner Anwendung für die Distribution von Ubuntu herunterzuladen.Eine Alternative besteht darin,
/etc/os-release
stattdessen die Datei zu verwenden. Dies ist als Liste von Shell-Variablen formatiert:Eine einfache Möglichkeit zum Parsen besteht darin, einfach
source
die Datei zu erstellen:Um zu vermeiden, dass alle diese Variablen unnötig festgelegt werden, können Sie die Datei in einer Subshell als Quelle angeben , die benötigte Variable wiedergeben und die Subshell beenden:
Alternativ können Sie die Datei jederzeit direkt analysieren:
quelle
Der
lsb_release
Befehl unterstützt eine-s
(oder--short
) Option, um nur die Informationen zu drucken, nach denen Sie fragen, und nicht den Header, der angibt, um welche Art von Informationen es sich handelt.Um nur die Versionsnummer zu erhalten, reicht es daher aus, Folgendes auszuführen:
Unter Ubuntu 18.04 LTS gibt das beispielsweise Folgendes aus:
Wie bei der Methode in der Antwort von WinEunuuchs2Unix ist es immer noch sinnvoll, die Befehlssubstitution zu verwenden, um diese Ausgabe einer Shell-Variablen zuzuweisen. Angenommen, Sie möchten, dass die
ver
Variable die Versionsnummer enthält:Mit
-s
, gibt es keine Notwendigkeit , mit der Zahl parsencut
,sed
,grep
,awk
, komplexere Formen des Parameter Expansion oder dergleichen.In dieser Verwendung sind die
"
"
Anführungszeichen optional, aber ich empfehle im Allgemeinen, die Parametererweiterung und andere Shell-Erweiterungen anzugeben, es sei denn, es gibt einen Grund, dies nicht zu tun.quelle
Kurze und einfache
lsb_release
Befehle.Nur zum Drucken der Version
Ausgabe:
Beschreibung drucken
Ausgabe:
Über die hier verwendeten Flags:
quelle