Если вы пишете скрипты для разбора команд 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: