GNU/Linux >> Znalost Linux >  >> Linux

Spusťte C# kód na linuxovém terminálu

Samozřejmě to lze provést a proces je extrémně jednoduchý.

Zde vysvětluji kroky pro Ubuntu Linux.

Otevřete terminál:

Ctrl + Alt + T

Zadejte

gedit hello.cs

V gedit okno, které se otevře, vložte následující příklad kódu:

using System;
class HelloWorld {
  static void Main() {
    Console.WriteLine("Hello World!");
  }
}

Uložte a zavřete gedit.

Zpět v terminálu typu:

sudo apt update
sudo apt install mono-complete
mcs -out:hello.exe hello.cs
mono hello.exe

Výstup:

Hello World!

POZNÁMKA:Odpověď @adabru níže činí mé řešení zastaralým, pokud nepoužíváte starší mono platformu.

Skripty C# lze spouštět z příkazového řádku bash stejně jako skripty Python a Perl, ale aby to fungovalo, vyžaduje to trochu bash magie. Jak Corey zmínil výše, musíte nejprve nainstalovat Mono na váš počítač. Poté uložte následující kód do spustitelného skriptu bash na vašem počítači se systémem Linux:

if [ ! -f "$1" ]; then
dmcs_args=$1
shift
else
dmcs_args=""
fi
script=$1
shift
input_cs="$(mktemp)"
output_exe="$(mktemp)"
tail -n +2 $script > $input_cs
dmcs $dmcs_args $input_cs -out:${output_exe} && mono $output_exe [email protected]                                                                          
rm -f $input_cs $output_exe

Za předpokladu, že jste výše uvedený skript uložili jako /usr/bin/csexec, následuje příklad C# "script":

#!/usr/bin/csexec -r:System.Windows.Forms.dll -r:System.Drawing.dll                                                                   
using System;                                                                                                                                
using System.Drawing;                                                                                                                        
using System.Windows.Forms;                                                                                                                  
public class Program                                                                                                                         
{                                                                                                                                            
    public static void Main(string[] args)                                                                                                     
    {                                                                                                                                          
        Console.WriteLine("Hello Console");                                                                                                      
        Console.WriteLine("Arguments: " + string.Join(", ", args));                                                                              
        MessageBox.Show("Hello GUI");                                                                                                            
    }                                                                                                                                          
}                                                                                                                                            

Uložte výše uvedený kód do souboru, jako je „hello.cs“, udělejte jej spustitelný, změňte první řádek tak, aby ukazoval na dříve uložený bash skript, a poté jej spusťte, měli byste vidět následující výstup spolu s dialogem „Ahoj GUI":

bash-4.2$ ./hello.cs foo bar baz
Hello Console
Arguments: foo, bar, baz

Všimněte si, že GUI vyžaduje, abyste byli na úrovni běhu 5. Zde je jednodušší skript C#, který běží na čistě textové konzoli:

#!/usr/bin/csexec                                                                                                                     
using System;                                                                                                                                
public class Program                                                                                                                         
{                                                                                                                                            
    public static void Main(string[] args)                                                                                                     
    {                                                                                                                                          
        Console.WriteLine("Hello Console");                                                                                                      
        Console.WriteLine("Arguments: " + string.Join(", ", args));                                                                              
    }                                                                                                                                          
}                                                                                                                                            

Všimněte si, že argumenty příkazového řádku jsou předány skriptu C#, ale argumenty shebang (v prvním skriptu C# výše "-r:System.Windows.Forms.dll -r:System.Drawing.dll") jsou předány C# kompilátor. Pomocí posledně jmenované funkce můžete na prvním řádku skriptu v C# zadat jakékoli požadované argumenty kompilátoru.

Pokud vás zajímají podrobnosti o tom, jak bash skript funguje, shebang (#!) shrne dohromady všechny argumenty, které mu byly předány na prvním řádku skriptu C#, následuje název skriptu a za ním argumenty příkazového řádku předané skriptu. sám. V prvním příkladu C# výše by bylo do skriptu bash předáno následujících 5 argumentů (označených uvozovkami):

"-r:System.Windows.Forms.dll -r:System.Drawing.dll" "hello.cs" "foo" "bar" "baz"

Skript určí, že první argument není název souboru a předpokládá, že obsahuje argumenty pro kompilátor C#. Poté odstraní první řádek skriptu C# pomocí 'tail' a uloží výsledek do dočasného souboru (protože kompilátor C# nečte ze stdin). Nakonec se výstup kompilátoru uloží do jiného dočasného souboru a provede se mono s původními argumenty předanými skriptu. Operátor 'shift' se používá k eliminaci argumentů kompilátoru a názvu skriptu a ponechává za sebou pouze argumenty skriptu.

Chyby kompilace budou vypsány na příkazový řádek při spuštění skriptu C#.


#! Tag (hashbang) se používá k tomu, aby řekl shellu, který interpret má použít, aby vaše skripty perl, php, bash, sh atd. fungovaly správně.

Ale C# není skriptovací jazyk, je určen ke kompilaci do spustitelného formátu. Pokud chcete používat C#, musíte nainstalovat alespoň kompilátor a runtime, nejlépe IDE (Integrated Development Environment), které vám pomůže vyvíjet a ladit vaše aplikace.

Nainstalujte Mono pro kompilátor a runtime, poté MonoDevelop pro IDE.


Linux
  1. Spusťte virtuální počítač Linux v Podman

  2. 5 použití příkazu mv v linuxovém terminálu

  3. Cowsay:Zábava v linuxovém terminálu

  1. Jak přiblížit a oddálit terminálovou konzoli v linuxu

  2. v linuxové konzoli, jak NEzabalit výstup

  3. Poběží spustitelný soubor Linuxu zkompilovaný na jedné variantě Linuxu na jiné?

  1. Vydejte se na dobrodružství ve svém linuxovém terminálu

  2. vlock – Chytrý způsob, jak uzamknout uživatelskou virtuální konzoli nebo terminál v systému Linux

  3. Linux – Spouštět aplikace Mac OS X na Linuxu?