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

cnd*_*cnd 7 linux bash mono zsh

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

Gil*_*il' 8

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

alias -s exe=mono
Run Code Online (Sandbox Code Playgroud)

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

Linux下可以通过binfmt_misc机制设置执行外部二进制文件;参见Rolf Bjarne Kvinge。好的 Linux 发行版会自动将其设置为 mono 运行时包的一部分。

如果因为没有 root 权限而不能使用 binfmt_misc,则必须满足于包装脚本。

#!/bin/sh
exec /path/to/mono "$0.exe" "$@"
Run Code Online (Sandbox Code Playgroud)

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


小智 6

有可能的:

  • 成为 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

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