Como definir o bash para executar * .exe com mono?

7

Sem qualquer DE ou mesmo X, eu quero usar ./my.exe para executar mono my.exe , como se ele trabalhasse com scripts python.

    
por Ashera 06.09.2012 / 09:39

3 respostas

8

O Bash não possui esse recurso. Zsh, você pode configurar aliases com base em extensões:

alias -s exe=mono

Isso só funciona em um shell interativo, no entanto, não quando um programa invoca outro.

No Linux, você pode configurar a execução de binários estrangeiros através do mecanismo binfmt_misc ; veja Rolf Bjarne Kvinge . Boas distribuições Linux configuram isso automaticamente como parte do pacote de tempo de execução mono.

Se você não pode usar binfmt_misc porque você não tem permissões de root, você terá que se contentar com scripts de wrapper.

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

Coloque o script wrapper no mesmo diretório que o arquivo .exe , com o mesmo nome sem .exe .

    
por 06.09.2012 / 23:27
6

É possível:

  • Torne-se root e ligue o módulo binfmt no seu kernel com este comando (você pode querer adicionar este comando ao seu script de inicialização /etc/rc.local, para que ele seja executado na inicialização):

    modprobe binfmt

  • Adicione a linha abaixo ao seu arquivo / etc / fstab:

    binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none

  • Depois, faça o seu sistema executar o seguinte comando na inicialização:

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

  • Não deixe de marcar seus arquivos .exe como executáveis no sistema de arquivos:

    chmod +x myprogram.exe

(daqui: link )

Observe que essa não é a maneira recomendada, leia a página do Guia acima mencionada e também a página sobre como fazer a implantação de aplicativos para aplicativos mono.

    
por 06.09.2012 / 10:21
2

Você pode incorporar o arquivo em um script bash usando o seguinte guia link

    
por 06.09.2012 / 10:16