如何将参数传递给 erlang os:cmd()?

Posted

技术标签:

【中文标题】如何将参数传递给 erlang os:cmd()?【英文标题】:How to pass arguments into erlang os:cmd()? 【发布时间】:2017-09-15 03:52:17 【问题描述】:

我想知道在使用 ErLang 时如何将参数传递给 shell 脚本?我知道我可以使用 os:cmd() 来执行 shell 脚本,但我发现我无法将参数传递给这个命令。

例如,我有一个参数L = 2,我希望我的shell 脚本使用这个参数,所以erlang 命令应该是os:cmd("bash echo.sh L")。但是,输出是 L,但我想得到 2。谁能帮帮我?

【问题讨论】:

【参考方案1】:

函数 io_lib:format/2 允许您准备一个字符串,然后将其传递给 os:command/1 :

S = io_lib:format("bash echo.sh ~p",[L]),
os:cmd(S),

S 是一个嵌套列表,我不记得它是否被os:cmd/1 接受,否则你将不得不将结果扁平化os:cmd(lists:flatten(S))

【讨论】:

os:cmd 接受原子和深度列表,但不接受二进制文件。

以上是关于如何将参数传递给 erlang os:cmd()?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 POST 参数传递给 Durable Function,然后将此参数传递给 Timer Triggered 函数

如何将参数传递给 Java 线程?

如何将参数传递给进程

如何通过反射将参数传递给方法

如何使用 SwiftUI 将参数传递给 Button 的操作

如何将两个参数传递给 Pool.starmap()?