Làm cách nào để kiểm tra phiên bản hộp ảo từ CLI


65

Tôi đang viết một tập lệnh Bash để lưu trữ số phiên bản của Virtualbox , nhưng không thể thành công.

Kịch bản của tôi là:

#!/bin/bash
installed_virtualbox=$(virtualbox --version) # --version this is what I want to change

Tôi đã thử

virtualbox --version
virtualbox -v
virtualbox -V
virtualbox --Version

tất cả dường như mở hộp ảo thay vì đầu ra.
virtualbox --helpđưa ra số phiên bản, nhưng đầu ra quá dài để lưu trữ trong biến và sử dụng sau.

Câu trả lời:


107

Để in hoặc xem phiên bản VirtualBox hiện tại, bạn nên sử dụng lệnh bên dưới:

vboxmanage --version

sau đó sẽ in phiên bản hiện tại như được thấy dưới đây;

nhập mô tả hình ảnh ở đây

Tham khảo 8.2. Tổng quan về lệnh tại trang web VirtualBox chính thức để biết thêm.


Để in phiên bản bằng tập lệnh, xem bên dưới:

#!/bin/bash
echo $(vboxmanage --version)

Hy vọng nó giúp.


1
echo $(vboxmanage --version | head -n 1 | awk '{print $NF}')echo $(vboxmanage --version)sự khác biệt là gì? chúng không giống nhau sao?
souravc

@souravc - Trong nhận xét của bạn ở đây, bạn sử dụng --version, chỉ xuất ra một dòng và một trường; vì vậy việc sử dụng headawkcắt xén là dư thừa, và vâng, chúng cho kết quả tương tự. Trong câu trả lời của bạn dưới đây, bạn sử dụng --helpthay vì --version, trong trường hợp đó headvà việc awkcắt tỉa thực sự cần thiết ... nhưng bạn vẫn nhận được thông tin ít chính xác hơn, vì phiên bản được tìm thấy thông qua --helpchỉ là --version#. #. r # (phiên bản có thông tin sửa đổi).
DreadPirateShawn 6/2/2015

@DreadPirateShawn bạn đúng bây giờ không cần thiết. Tại thời điểm đó vboxmanageđược sử dụng để đi kèm với một số thông tin khác đó là lý do tại sao tôi đề xuất đó. Bạn có thể thấy chỉnh sửa , OP chấp nhận đề nghị của tôi. Tại sao tôi lại làm cho mọi việc :) phức tạp
souravc

@souravc - Ahhh ... buồn cười làm thế nào bối cảnh làm cho mọi thứ rõ ràng hơn. :-P Vậy ... mẹo tuyệt vời. :-)
DreadPirateShawn 6/2/2015

Kể từ VBox 5.0, vbox-img --versioncũng có thể in phiên bản.
kenorb

7

Bạn có thể thử điều này,

virtualbox --help | head -n 1 | awk '{print $NF}'

hoặc là

$ echo $(virtualbox --help | head -n 1 | awk '{print $NF}')
4.3.6

Làm thế nào nó hoạt động

Bước 1

virtualbox --help

cung cấp cho bạn một đầu ra dài cho biết nhiều tùy chọn, vv Nhưng những dòng đầu tiên của nó là như thế,

Oracle VM VirtualBox Manager 4.3.6
(C) 2005-2013 Tập đoàn Oracle
Tất cả quyền được bảo lưu.
...

Bước 2

| head -n 1

|được gọi là đường ống. Nó có ứng dụng tuyệt vời trong dòng lệnh. Nó chuyển toàn bộ biểu thức cho lệnh tiếp theo head. head -n 1chỉ in dòng đầu tiên. xem man headđể biết thêm Ở giai đoạn này đầu ra chỉ

Trình quản lý VirtualBox của Oracle VM 4.3.6

Bước 3

| awk '{print $NF}'

Một lần nữa những điều còn lại được truyền cho awk. Ở giai đoạn này, awkxem toàn bộ dòng là sự kết hợp của một vài trường được phân tách bằng dấu cách và chỉ in trường cuối cùng của biểu thức trên. Vì vậy, bạn chỉ nhận được phiên bản. Xem man awkđể biết thêm.


Sẽ thật tuyệt nếu bạn có thể phân tích lệnh và giải thích từng phần làm gì.
việc

@Jobin plz xem chỉnh sửa của tôi.
souravc

2

bạn có thể biết phiên bản của gói được cài đặt với dpkg và grep với đường ống

dpkg -l | grep virtualbox | awk '{print $3}'

Mỗi lệnh được làm gì, làm ơn hãy dài dòng.
việc

1
avi @ avi-IdeaPad-Z500: ~ $ hộp ảo - trợ giúp
Trình quản lý VirtualBox của Oracle VM 4.3.6

Vì vậy, chạy lệnh dưới đây,

virtualbox --help | awk '/Oracle/{ print $5 }'

Đầu ra:

4.3.6

awk '/Oracle/{ print $5 }'

Tìm kiếm dòng bao gồm từ Oracle. Nếu có thì lệnh sẽ chọn cột thứ năm trên dòng đó và chuyển hướng nó đến đầu ra tiêu chuẩn. Nếu không có từ đó xuất hiện trên bất kỳ dòng nào, thì nó sẽ không hiển thị gì.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.