यदि आप वैग्रान्ट कमांड को पार्स करने के लिए स्क्रिप्ट लिख रहे हैं, तो यह मशीन-अनुकूल आउटपुट ( --machine-readable
) को पार्स करने की सलाह दी जाती है जो अधिक सुसंगत है।
प्रारूप है:
timestamp,target,type,data...
इसलिए आप इसे CSV फ़ाइल के रूप में आयात कर सकते हैं, क्योंकि यह अल्पविराम से अलग है।
शेल के साथ, उदाहरण के लिए पार्स करना शायद अधिक कठिन है:
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
देखें: वैग्रांत - मशीन पठनीय आउटपुट
हालाँकि मुझे मानक आउटपुट, जैसे कि पार्स करना आसान लगता है
while read id name provider state path; do
[ "$state" = "running" ] && vagrant suspend $id;
done < <(vagrant global-status)
Btw। सैद्धांतिक रूप से vagrant
कमांड को इस GH पोस्ट के अनुसार वीएम की सूची के लिए एक नियमित अभिव्यक्ति को स्वीकार करना चाहिए , उदाहरण के लिए:
vagrant suspend '*'
लेकिन यह काम नहीं करता है और एक बग # 7221 है जो इसे ठीक करने के लिए लंबित है।
संबंधित गिटहब टिकट: