从WINE中运行的程序执行Shell命令

UKn*_*eDo 12 linux shell wine

我有一个使用WINE在Linux上运行的Windows程序.

如何从windows程序中调用Linux shell命令?

小智 8

试试这个(在我的Linux Mint系统上运行Gnome计算器):

wineconsole cmd
Run Code Online (Sandbox Code Playgroud)

......并从葡萄酒控制台:

/bin/sh gcalctool
Run Code Online (Sandbox Code Playgroud)

在这个一般原则上,您还可以通过编辑wine注册表来打开文档并将文件与linux应用程序相关联.葡萄酒常见问题中有一节介绍它:

6.6.3如何将本机程序与Wine中的文件类型相关联?

所以你应该能够编写shell脚本并调用它们.

  • 这似乎不再起作用,只是得到`无法识别/ bin/sh作为内部或外部命令,或批处理脚本. (10认同)

Adr*_*ian 7

使用较新的Wine版本(使用Wine 1.7.38测试),您可以通过以下方式从Wine中运行Linux程序(此处以启动gedit为例):

wineconsole cmd
Run Code Online (Sandbox Code Playgroud)

......从那个葡萄酒控制台:

start /unix /usr/bin/gedit
Run Code Online (Sandbox Code Playgroud)

如果要直接从Windows应用程序中启动Linux程序,以下行对我有用:

cmd /c start /unix /usr/bin/gedit
Run Code Online (Sandbox Code Playgroud)

要测试这一点,您可以直接在Linux控制台上调用:

wine cmd /c start /unix /usr/bin/gedit
Run Code Online (Sandbox Code Playgroud)

需要注意的一件重要事情:您要启动的程序需要设置可执行位,否则从Wine调用它将失败!

  • 这适用于 ui 应用程序,但我似乎无法让它与任何命令行应用程序一起使用 - 即 ffmpeg、git 等。它不显示错误,也不显示任何输出。根本不值一提。还有其他人有这样的运气吗? (2认同)

Dan*_*ton 0

编辑:user1182474的评论是正确的;Wine 不会隔离它运行的程序。(它试图隐藏它,但不是很彻底。)我完全无法使用谷歌。Psen 下面的评论更正确,并引用了常见问题解答。(请注意,要使其工作,您可能需要通过 Wine 驱动器映射提供程序的目录。或者,请参阅匿名回复者的答案。)

==旧答案==

Wine 隔离它运行的程序。如果一切按预期工作,这些应用程序所呈现的环境与 Windows 没有什么区别。不幸的是,对于您的目的而言,这意味着您无法访问主机操作系统 (Linux) 的功能。我的意思是,你可以通过修补 Wine 来做到这一点,但我的印象是这会带来更多的工作而不是其价值。

还有希望!Cygwin 是一个适用于 Windows 的类 Unix 环境。您可以在 Wine 中安装 Cygwin,并使用 Cygwin 运行 shell 脚本。(显然,使用“winetricks cygwin”安装是最简单的)调用 Cygwin 的 bash shell(在某些 Wine 程序中)如下所示:

c:\cygwin\bin\bash  myscript
Run Code Online (Sandbox Code Playgroud)

当然,将 c:\cygwin 更改为您安装它的位置。

  • Wine 根本不隔离它运行的程序...如果可以的话我会否决这一点。 (3认同)