Якщо ви пишете сценарії для розбору команд 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
команда повинна приймати регулярний вираз для списку віртуальних машин, який буде призупинено відповідно до цієї публікації в GH , наприклад:
vagrant suspend '*'
але він не працює , і є помилка # 7221 , який знаходиться на розгляді того , щоб виправити це.
Пов'язані квитки на GitHub: