Как передать споры оболочки с VBoxManage guestcontrol?

Я выполняю команду от хост-машины на гостевой машине (обе Ubuntu) как

VBoxManage guestcontrol Ubuntu1 run --exe "script.sh" --username xx --password xx --wait-stdout

где сценарий оболочки на гостевой машине как

#!/bin/bash
echo $1

Как я могу передать аргумент 1 при выполнении сценария оболочки?

Я предположил, что это должно работать как

run --exe "script.sh arg1"

но это не делает.

1
задан 23 April 2017 в 22:50

1 ответ

SSH

Мы можем запустить приложение на виртуальном госте с сессией SSH с хоста на эту машину. Однако это требует, чтобы сети были включены, и что openssh-сервер был установлен выполнения на гостевой машине.

VBoxManage guestcontrol

Как альтернатива мы можем использовать встроенные функции Виртуального Поля для выполнения программы на рабочем госте VM. Это может быть, покончили VBoxManage guestcontrol.

Строка в качестве примера ниже будет просто работать ls на корне виртуальной машины:

VBoxManage --nologo guestcontrol "<vm_name>" run --exe "/bin/ls" --username <guestuser> --password <password> --wait-stdout

Запуск графического приложения на госте требует, чтобы мы определили переменную среды ДИСПЛЕЯ гостю с опцией --putenv. Следующий пример выполнит и откроет gedit на госте:

VBoxManage --nologo guestcontrol "<vm_name" run --exe "/usr/bin/gedit" --username <guestuser> --password <password> --putenv "DISPLAY=:0" --wait-stdout

Мы можем также передать опции открыть программу. Следующий пример откроет файл vmtest в госте gedit:

VBoxManage --nologo guestcontrol "vm_name" run --exe "/usr/bin/gedit" --username <guestuser> --password <password> --putenv "DISPLAY=:0" --wait-stdout -- gedit/arg0 vmtest

Опции и аргументы разделяются от команды с -- как может лучше всего быть замечен в ниже примера сценария от хоста.


Сценарий хоста в качестве примера

Ниже сценария будет играть example.ogg использование файла paplay в гостевой машине при выполнении на хосте. Замените переменные соответствующими значениями.

#!/bin/bash

VM_NAME=myvm
VM_USER=takkat
VM_PASSWD=topsecret
VM_EXEC=paplay
VM_EXEC_PATH=/usr/bin/paplay
VM_ARGS=/home/takkat/Music/example.ogg

VBoxManage --nologo guestcontrol $VM_NAME run --exe $VM_EXEC_PATH \
--username $VM_USER --password $VM_PASSWD --wait-stdout \
-- {$VM_EXEC}/arg0 $VM_ARGS
3
ответ дан 7 December 2019 в 12:33

Другие вопросы по тегам:

Похожие вопросы: