Si vous écrivez des scripts pour analyser les commandes Vagrant, il est conseillé d’analyser une sortie plus conviviale ( --machine-readable
) qui est plus cohérente.
Le format est le suivant:
timestamp,target,type,data...
vous pouvez donc l’importer en tant que fichier CSV, car il est séparé par des virgules.
Avec shell, il est probablement plus difficile à analyser, par exemple:
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
Voir: Vagrant - Sortie lisible par machine
Cependant, je trouve plus facile d’analyser la sortie standard, par exemple
while read id name provider state path; do
[ "$state" = "running" ] && vagrant suspend $id;
done < <(vagrant global-status)
Btw. Théoriquement, la commande vagrant
doit accepter une expression régulière pour la liste des machines virtuelles à suspendre conformément à cette publication , par exemple:
vagrant suspend '*'
mais cela ne fonctionne pas et il y a un bogue # 7221 qui est en attente afin de le corriger .
Billets GitHub associés: