J'essaie donc de capturer l'adresse IP d'un invité Parallels VM (Win8) à partir de l'hôte (OS X). Je pensais qu'un script bash serait bon pour cela. Le but ultime est d’avoir une seule commande qui récupère l’adresse IP puis initie une redirection de port ssh.
Je suis au courant de la prlctl enter
commande et je ne pense pas qu'elle prenne en charge la redirection de port.
Mon scénario à ce jour:
#!/bin/bash
VM="Win8 Dev"
CMD="prlctl exec \"$VM\" ipconfig | grep "IPv4" | grep -m1 -o '\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}'"
echo $CMD
IP=$($CMD)
echo $IP
sortie:
prlctl exec "Win8 Dev" ipconfig | grep IPv4 | grep -m1 -o
'\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}\.\d\{1,3\}' Failed to get VM config:
The virtual machine could not be found. The virtual machine is not
registered in the virtual machine directory on your Mac. Contact the
Parallels support team for assistance.
Il semble donc que la variable CMD est correctement renseignée, mais quelque chose est en train de se perdre lorsque vous essayez d’affecter le résultat de la commande à la variable IP.
Des idées sur ce que je fais mal?
prlctl exec "Win8 Dev" ipconfig
directement dans le shell, cela fonctionne-t-il correctement? Idem pour tout le contenu de $ CMD.IP=$($CMD)
Réponses:
Si quelqu'un d'autre a besoin de faire cela, voici la solution que j'ai proposée:
Je ne sais pas pourquoi eval est nécessaire ici. Quelqu'un plus familier avec bash sera nécessaire pour répondre à ce mystère.
la source