如何设置 bash 以单声道运行 *.exe?

如何设置 bash 以单声道运行 *.exe?

没有任何 DE 甚至 X,我想使用./my.exerun mono my.exe,就像它与 python 脚本一起工作一样。

答案1

Bash 没有这样的功能。 Zsh 确实如此,您可以根据扩展名设置别名:

alias -s exe=mono

然而,这仅在交互式 shell 中有效,当一个程序调用另一个程序时则无效。

在Linux下,您可以通过以下命令设置外部二进制文件的执行binfmt_misc机制;看罗尔夫·比亚恩·克温格。好的 Linux 发行版会自动将其设置为 mono 运行时包的一部分。

如果由于没有 root 权限而无法使用 binfmt_misc,则必须使用包装脚本。

#!/bin/sh
exec /path/to/mono "$0.exe" "$@"

将包装器脚本放在与文件相同的目录中.exe,具有相同的名称,但不带.exe.

答案2

有可能的:

  • 成为 root 并使用以下命令打开内核中的 binfmt 模块(您可能需要将此命令添加到 /etc/rc.local 引导脚本中,以便它将在引导时执行):

    modprobe binfmt

  • 将以下行添加到 /etc/fstab 文件中:

    binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none

  • 然后,让您的系统在启动时运行以下命令:

    echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register

  • 请务必将您的 .exe 文件在文件系统中标记为可执行文件:

    chmod +x myprogram.exe

(从这里:http://mono-project.com/Guide

请注意,这不是推荐的方式,请阅读上述指南页面以及有关如何进行应用程序部署的页面对于单声道应用。

答案3

您可以使用以下指南将该文件嵌入到 bash 脚本中http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts

相关内容