gpt4 book ai didi

elixir - System.cmd 抑制 Elixir 中的输出

转载 作者:行者123 更新时间:2023-12-04 17:44:53 25 4
gpt4 key购买 nike

我在 Elixir 上使用 openssl 命令行生成 RSA key 对,一切正常,除了我无法抑制该命令的输出。

这是我正在运行的:

{_, 0} = System.cmd "openssl", [ "genrsa", "-out", "privateKey.pem", "2048"]

我不断得到:
Generating RSA private key, 2048 bit long modulus .....+++
.....................................+++ e is 65537 (0x10001)

在我用 escript 编译并运行可执行文件之后。

最佳答案

System.cmd从命令收集标准输出并返回它,但这里发生的是 OpenSSL 正在写入标准错误,默认情况下不会捕获标准错误,因此只会打印到终端。

您可以使用选项 stderr_to_stdout :

iex(2)> {_, 0} = System.cmd "openssl", [ "genrsa", "-out", "key.pem", "2048"],
[stderr_to_stdout: true]
{"Generating RSA private key, 2048 bit long modulus\n.......................+++\n......................................+++\ne is 65537 (0x10001)\n",
0}

这意味着输出将在第一个元组元素中返回,而不是打印到终端。由于您忽略了返回值的那部分,因此在您运行程序时不会输出它。

关于elixir - System.cmd 抑制 Elixir 中的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com