无法使用 System.cmd 从 Elixir 中 运行 curl 命令

Can't run curl command from within Elixir with System.cmd

我只是想使用 Elixir 运行 具有特定格式的 curl 命令。

$ curl -w "@config/curl-format.txt" -o /dev/null -s "http://wordpress.com/"
0.004, 0.017, 0.000, 0.017, 0.000, 0.029, 0.029

运行 直接来自终端的命令工作正常。


这就是我在 Elixir 中尝试做的事情:

args = ["-w config/curl-format.txt", "-o /dev/null", "-s", "http://wordpress.com"]
result = System.cmd("curl", args, [])

但我得到:

{" config/curl-format.txt", 23}

和上面的结果不一样。

您的 System.cmd 调用等效于(在 shell 语法中):

curl "-w config/curl-format.txt" "-o /dev/null" -s http://wordpress.com

您需要传入 -wconfig/curl-format.txt-o/dev/null 作为不同的参数。您还错过了 @config/curl-format.txt 中的 @。这应该有效:

args = ["-w", "@config/curl-format.txt", "-o", "/dev/null", "-s", "http://wordpress.com"]
result = System.cmd("curl", args, [])