Die WSL unter Windows 10 ermöglicht die Ausführung von Linux-Befehlen und Befehlszeilentools über bash.exe. Sehr nützlich kann ein Linux-Tool / -Befehl über die Windows-Befehlszeile ( cmd.exe
) aufgerufen werden, indem es als Argument an bash.exe übergeben wird:
Dies ist sehr nützlich, da es Windows-basierten Skripten ermöglichen sollte, Windows- und Linux-Tools nahtlos zu kombinieren.
Leider konnte ich Linux-Befehle nicht über ein R-Skript aufrufen (siehe unten).
0) System
Win10 x64 + Jahrestag Update + WSL installiert
1) Vergleichsfälle, in denen der Aufruf von Linux-Befehlen funktioniert
Das Folgende funktioniert für mich; hier nur mit einem Beispiel Aufruf von ls
gezeigt.
von der Windows-Befehlszeile (Eingabeaufforderung cmd.exe)
%Vor%%Vor%
Gleiches funktioniert, wenn es von WinKey + R
Funktioniert auch innerhalb einer .bat
-Datei.
Es kann aus kompiliertem Code aufgerufen werden. Ich habe versucht mit Delphi XE2 32-Bit und 64-Bit mit ShellExecute
:
Zum Beispiel funktionieren diese (32 und 64 Bit):
%Vor%Oder (32-Bit-Code):
%Vor%Oder (64-Bit-Code):
%Vor% All dies scheint zu funktionieren (und ShellExecute
gibt 42 zurück).
2) Fehler beim Aufruf von Linux-Befehlen von R mit R 3.3.1 x64
Alle folgenden (und einige ähnliche Dinge, die ich versucht habe) scheitern mit dem Status 65535:
%Vor%%Vor%
%Vor%
%Vor%
%Vor%
3) Frage
Wenn Beispiele unter 1) funktionieren, finde ich 2) sehr verwirrend. Fehle ich etwas Offensichtliches hier?
Ich wäre sehr dankbar für ein einfaches Beispiel, wo die Ausführung eines Linux-Befehls über bash.exe
unter WSL funktioniert.
Ihre fehlerhaften Beispiele sollten jetzt ordnungsgemäß in Windows 10 Insider-Builds funktionieren & gt; = 14951 was führte viele" Interop "-Verbesserungen und neue Funktionen ein :
%Vor%Erzeugt:
%Vor%Tags und Links r windows delphi windows-subsystem-for-linux