J'écris un script Bash pour stocker le numéro de version de Virtualbox , mais ne peut pas réussir.
Mon script est:
#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change
j'ai essayé
virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version
tout semble ouvrir la virtualbox au lieu de la sortie.
virtualbox --help
donne le numéro de version, mais la sortie est trop longue pour être stockée dans variable et utilisée plus tard.
bash
virtualbox
Braiam
la source
la source
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')
etecho $(vboxmanage --version)
quelle est la différence? ne sont-ils pas pareils?--version
, qui ne génère qu'une ligne et un champ; donc utiliserhead
etawk
couper est redondant, et oui, ils produisent le même résultat. Dans votre réponse ci-dessous, vous utilisez à la--help
place de--version
, auquel cashead
, leawk
rognage est en effet nécessaire ... mais vous obtenez toujours des informations moins précises, car la version trouvée via--help
est seulement #. #. # Vs--version
ce qui donne #, #. # r # (version avec informations de révision).vboxmanage
j'avais l'habitude de venir avec d'autres informations, c'est pourquoi j'ai proposé cela. Vous pouvez voir l'édition , OP a accepté ma suggestion. Pourquoi devrais-je rendre les choses complexes :)vbox-img --version
pouvez également imprimer la version.Tu peux essayer ça,
ou
Comment ça fonctionne
Étape 1
virtualbox --help
vous donne une longue sortie en disant beaucoup d'options, etc. Mais ses toutes premières lignes sont comme,
Étape 2
| head -n 1
|
s'appelle pipe. Il a une grande application en ligne de commande. Il passe toute l'expression à la commande suivantehead
.head -n 1
affiche uniquement la première ligne. voirman head
pour plus. A ce stade, la sortie est seulementÉtape 3
| awk '{print $NF}'
Encore une fois, les choses restantes sont passées à
awk
. A ce stade,awk
la ligne entière est une combinaison de quelques champs séparés par un espace et n'imprime que le dernier champ de l'expression ci-dessus. Donc, vous obtenez la version seulement. Voirman awk
pour plus.la source
vous pourriez connaître la version du paquet installé avec dpkg et grep avec la tuyauterie
la source
Alors lancez la commande ci-dessous,
Sortie:
awk '/Oracle/{ print $5 }'
Recherche la ligne qui contient le mot
Oracle
.Si oui, la commande sélectionne la cinquième colonne de cette ligne et la redirige vers la sortie standard. Si aucun mot de ce type n'était présent sur les lignes, il n'affiche rien.la source