C'è una chiamata Erlang dove posso fare Retval = subprocess:call(["cmd", "arg1", "arg2", "arg3"])
?Esiste un errore Erlang os: cmd che accetta un elenco di stringhe anziché un singolo comando?
Se sto creando un comando complesso da eseguire, con os: cmd/1 è facile fare errori di escape. Confrontati con il metodo subprocess.call() di Python, dove passo in una lista di stringhe e so che è passato letteralmente al sottoprocesso, niente maciullato.
Grazie.
Questo non risolve il problema, ovvero che la stringa data a os: cmd/1 verrà elaborata da una shell. Ciò espanderà le cose in modo dipendente dal sistema. Ad esempio, os: cmd ("echo 'Hello'") passerà Hello al comando echo senza le virgolette singole. È difficile ottenere questo tipo di cose in modo che il programma ottenga le stesse stringhe di argomento che hai sul lato di Erlang. Hai bisogno di un modo per eseguire il programma senza shell come middle-man. – RichardC