หากคุณกำลังเขียนสคริปต์เพื่อแยกคำสั่ง Vagrant แนะนำให้แยกวิเคราะห์เอาต์พุตที่เป็นมิตรกับเครื่อง ( --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
โปรดดู: Vagrant - เอาต์พุตที่เครื่องอ่านได้
อย่างไรก็ตามฉันคิดว่ามันง่ายกว่าในการแยกวิเคราะห์เอาต์พุตมาตรฐานเช่น
while read id name provider state path; do
[ "$state" = "running" ] && vagrant suspend $id;
done < <(vagrant global-status)
Btw ในทางทฤษฎีvagrant
คำสั่งควรยอมรับการแสดงออกปกติสำหรับรายการของ VMs ที่จะระงับตามโพสต์ GH นี้ตัวอย่างเช่น:
vagrant suspend '*'
แต่มันใช้งานไม่ได้และมีข้อผิดพลาด # 7221ซึ่งอยู่ระหว่างดำเนินการเพื่อแก้ไข
ตั๋ว GitHub ที่เกี่ยวข้อง: