Если вы пишете сценарии для анализа команд Vagrant, рекомендуется проанализировать машинно-ориентированный вывод ( --machine-readable
), который является более последовательным.
Формат такой:
timestamp,target,type,data...
так что вы можете импортировать его как файл CSV, так как он разделен запятыми.
С shell, возможно, труднее разобрать, например:
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: