Saya menulis skrip Bash untuk menyimpan nomor versi Virtualbox , tetapi tidak berhasil.
Script saya adalah:
#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change
Saya mencoba
virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version
semua tampaknya membuka virtualbox alih-alih output.
virtualbox --help
memberikan nomor versi, tetapi hasilnya terlalu panjang untuk disimpan dalam variabel dan digunakan nanti.
bash
virtualbox
Braiam
sumber
sumber
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')
danecho $(vboxmanage --version)
apa bedanya? bukankah mereka sama?--version
, yang hanya menghasilkan satu baris dan satu bidang; jadi menggunakanhead
danawk
memangkas adalah mubazir, dan ya mereka menghasilkan hasil yang sama. Dalam jawaban Anda di bawah ini, Anda menggunakan--help
alih-alih--version
, dalam hal ini pemangkasanhead
danawk
memang diperlukan ... tetapi Anda masih mendapatkan informasi yang kurang tepat, karena versi yang ditemukan via--help
hanya #. #. # Vs vs--version
yang menghasilkan #. #. # r # (versi dengan info revisi).vboxmanage
dulu datang dengan beberapa info lain itu sebabnya saya mengusulkan itu. Anda dapat melihat hasil edit , OP menerima saran saya. Mengapa saya membuat hal-hal yang kompleks :)vbox-img --version
bisa mencetak versi juga.Anda dapat mencoba ini,
atau
Bagaimana itu bekerja
Langkah 1
virtualbox --help
memberi Anda output panjang mengatakan banyak pilihan dll. Tapi baris pertama seperti,
Langkah 2
| head -n 1
|
disebut pipa. Ini memiliki aplikasi hebat di baris perintah. Itu melewati seluruh ekspresi ke perintah berikutnyahead
.head -n 1
hanya mencetak baris pertama. lihatman head
lebih lanjut. Pada tahap ini hanya keluaranLangkah -3
| awk '{print $NF}'
Lagi hal-hal yang tersisa diteruskan
awk
. Pada tahap iniawk
melihat seluruh baris sebagai kombinasi beberapa bidang yang dipisahkan oleh ruang dan hanya mencetak bidang terakhir dari ekspresi di atas. Jadi Anda mendapatkan versinya saja. Lihatman awk
lebih.sumber
Anda bisa mengetahui versi paket yang diinstal dengan dpkg dan grep dengan piping
sumber
Jadi jalankan perintah di bawah ini,
Keluaran:
awk '/Oracle/{ print $5 }'
Mencari baris yang terdiri dari kata
Oracle
. Jika ya maka perintah mengambil kolom kelima pada baris itu dan mengarahkannya ke keluaran standar.sumber