Ich schreibe ein Bash-Skript zum Speichern der Versionsnummer von Virtualbox , kann aber keinen Erfolg haben.
Mein Skript ist:
#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change
Ich habe es versucht
virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version
alles scheint die virtualbox anstatt der ausgabe zu öffnen.
virtualbox --help
gibt die Versionsnummer an, aber die Ausgabe ist zu lang, um sie in einer Variablen zu speichern und später zu verwenden.
bash
virtualbox
Braiam
quelle
quelle
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')
undecho $(vboxmanage --version)
was ist der unterschied sind sie nicht gleich--version
, der nur eine Zeile und ein Feld ausgibt; Die Verwendung vonhead
undawk
zum Trimmen ist also überflüssig, und ja, sie geben dasselbe Ergebnis aus. In Ihrer Antwort unten verwenden Sie--help
statt--version
, wobei in diesem Fallhead
undawk
Trimmen in der Tat notwendig sind ... aber immer noch weniger genaue Informationen erhalten, wie die über gefundene Version--help
nur # ist. #. # Vs--version
denen ergeben #. #. # r # (Version mit Versionsinfo).vboxmanage
es noch einige andere Infos, deshalb habe ich das vorgeschlagen. Sie können die Bearbeitung sehen , OP nahm meinen Vorschlag an. Warum sollte ich die Dinge komplex machen :)vbox-img --version
kann die Version auch gedruckt werden.Sie können dies versuchen,
oder
Wie es funktioniert
Schritt 1
virtualbox --help
gibt Ihnen eine lange Ausgabe mit vielen Optionen usw. Aber die ersten Zeilen sind wie folgt:
Schritt 2
| head -n 1
|
heißt Pipe. Es hat eine großartige Anwendung in der Kommandozeile. Es übergibt den gesamten Ausdruck an den nächsten Befehlhead
.head -n 1
druckt nur die erste Zeile. sehen Sieman head
für mehr. Zu diesem Zeitpunkt wird nur ausgegebenSchritt 3
| awk '{print $NF}'
Wieder werden die restlichen Sachen an übergeben
awk
. Zu diesem Zeitpunkt wirdawk
die gesamte Zeile als Kombination von wenigen durch Leerzeichen getrennten Feldern betrachtet und nur das letzte Feld des obigen Ausdrucks gedruckt. Sie erhalten also nur die Version. Sehen Sieman awk
für mehr.quelle
Sie könnten die Version des Pakets kennen, das mit dpkg und grep mit piping installiert wurde
quelle
Führen Sie den folgenden Befehl aus:
Ausgabe:
awk '/Oracle/{ print $5 }'
Sucht nach der Zeile, die aus dem Wort besteht.
Oracle
Wenn ja, nimmt der Befehl die fünfte Spalte in dieser Zeile auf und leitet sie zur Standardausgabe um. Wenn in keiner Zeile ein solches Wort vorhanden war, wird nichts angezeigt.quelle