Gibt es eine Erlang os: cmd-Entsprechung, die eine Liste von Zeichenfolgen anstelle eines einzelnen Befehls verwendet?

8

Gibt es einen Erlang-Ruf, wo ich Retval = subprocess:call(["cmd", "arg1", "arg2", "arg3"]) machen kann?

Wenn ich einen komplexen Befehl zur Ausführung erstelle, ist es mit os: cmd / 1 leicht, ausgehende Fehler zu machen. Vergleichen Sie mit der Python-Methode subprocess.call (), wo ich eine Liste von Strings übergebe und weiß, dass sie wortwörtlich an den Subprozess übergeben wird, nothing mangled.

Danke.

    
me2 09.02.2010, 17:29
quelle

3 Antworten

7

Das ist, was ich mir ausgedacht habe.

%Vor%     
me2 12.02.2010, 02:54
quelle
7

Heutzutage kann man open_port({spawn_executable, Command}, [{args, [A1, ..., An]}]) machen, aber dafür gibt es im os-Modul noch keinen praktischen Wrapper. Du könntest den Code für os:cmd/1 nehmen und ihn so optimieren, dass er spawn_executable benutzt. Weitere Informationen finden Sie in den Dokumenten für erlang:open_port/2 .

    
RichardC 10.02.2010 09:15
quelle
0

Kannst du nicht einfach os:cmd(string:join(["cmd", "arg1", "arg2"], " ")) machen?

    
Zed 10.02.2010 07:36
quelle

Tags und Links