【问题标题】:How to pass arguments into erlang os:cmd()?如何将参数传递给 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。谁能帮帮我?

【问题讨论】:

    标签: linux shell erlang


    【解决方案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 接受原子和深度列表,但不接受二进制文件。
    猜你喜欢
    • 2015-10-30
    • 2012-08-28
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 2020-10-09
    • 2012-12-21
    • 2012-01-07
    相关资源
    最近更新 更多