Nếu bạn đang viết tập lệnh để phân tích các lệnh Vagrant, bạn nên phân tích đầu ra thân thiện với máy ( --machine-readable
) phù hợp hơn.
Định dạng là:
timestamp,target,type,data...
để bạn có thể nhập tệp dưới dạng tệp CSV, vì nó được phân tách bằng dấu phẩy.
Với shell, có lẽ khó phân tích hơn, ví dụ:
for id in $(vagrant global-status --machine-readable | cut -d, -f5 | grep -B3 running | egrep -o "[0-9a-f]{7}"); do
vagrant suspend $id;
done
Xem: Vagrant - Đầu ra máy có thể đọc được
Tuy nhiên tôi thấy phân tích đầu ra tiêu chuẩn dễ dàng hơn, vd
while read id name provider state path; do
[ "$state" = "running" ] && vagrant suspend $id;
done < <(vagrant global-status)
Btw. vagrant
Lệnh về mặt lý thuyết nên chấp nhận một biểu thức chính quy cho danh sách các VM tạm ngưng theo bài viết GH này , ví dụ:
vagrant suspend '*'
nhưng nó không hoạt động và có một lỗi # 7221 đang chờ xử lý để sửa nó.
Vé GitHub liên quan: