AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 908134
Accepted
Googlebot
Googlebot
Asked: 2017-04-24 11:50:38 +0800 CST2017-04-24 11:50:38 +0800 CST 2017-04-24 11:50:38 +0800 CST

如何使用 VBoxManage guestcontrol 传递 shell 参数?

  • 772

我从客户机(都是 Ubuntu)上的主机运行命令

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

来宾机器上的 shell 脚本在哪里

#!/bin/bash
echo $1

如何在执行 shell 脚本时传递参数 1?

我认为它应该像

run --exe "script.sh arg1"

但事实并非如此。

command-line
  • 1 1 个回答
  • 10912 Views

1 个回答

  • Voted
  1. Best Answer
    Takkat
    2017-04-24T12:04:31+08:002017-04-24T12:04:31+08:00

    SSH

    我们可以通过从主机到这台机器的 SSH 会话在虚拟客户机上运行应用程序。但是,这需要启用网络,并且安装了openssh-server并在客户机上运行。

    VBoxManage 访客控制

    作为替代方案,我们可以使用 Virtual Box 的内置功能在运行的来宾 VM 上执行程序。这可以通过VBoxManage guestcontrol.

    下面的示例行将仅ls在虚拟机的根目录上运行:

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

    在客户机上运行图形应用程序需要我们使用选项为客户机定义 DISPLAY 环境变量--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
    
    • 5

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve