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.
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
.
Tags und Links erlang