如何在Erlang中将负数作为命令行参数传递

伊戈尔·科罗廖夫(Igor Korolev)

我有一个命令行程序,该程序接受两个数字作为参数,我这样运行它:

erl -noshell -s weight bmi 3 9

但是我不知道如何处理负数。我试图将它们作为字符串-extra进行传递。根据文档,Erlang似乎将以连字符开头的所有内容都解释为标志:

以字符-(连字符)开头的任何参数都将解释为标志

因此,问题是:如何使Erlang例如考虑-10作为数字而不是标志?

erl -noshell -s weight bmi -10 9
7stud

但是我无法弄清楚如何处理负数(试图以-extra等形式作为字符串传递。

这是如何使用-extra标志的示例

-module(weight).
-compile(export_all).

bmi() ->
    [First|_Rest] = init:get_plain_arguments(),
    FirstAsInt = list_to_integer(First),
    io:format("~w~n", [FirstAsInt]),
    io:format("~w~n", [FirstAsInt + 1]).

在外壳中:

1> c(weight).

在命令行中:

~/erlang_programs$ erl -noshell -s weight bmi -extra -9
-9
-8

输入负数before the first flag或之后的数字--对我不起作用。

如果尝试以下代码,则可能会更清楚:

-module(weight).
-compile(export_all).

bmi() ->
    Args = init:get_plain_arguments(),
    io:format("~w~n", [Args]).

在命令行中:

$ erl -noshell -s weight bmi -extra -9 abc
[[45,57],[97,98,99]]

init:get_plain_arguments()返回参数列表。第一个arg是列表[45,57],可以用简写形式创建"-9"; 第二个arg是列表[97,98,99],可以用简写形式创建"abc"此外,列表/字符串可以使用转换为整数list_to_integer()整数45是连字符57的ascii代码,整数是字符9的ascii代码。list_to_integer()它足够聪明,可以处理负号。同样,整数97,98,99是字符的ASCII码a,b,c

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在命令行中将哈希作为可选参数传递给-M

来自分类Dev

如何在Python中将“开始日期”和“结束日期”作为命令行参数传递

来自分类Dev

如何在shell脚本中将变量作为参数传递给Bigquery命令行

来自分类Dev

如何在shell脚本中将表名作为参数传递给Bigquery命令行

来自分类Dev

如何在命令行中将参数传递给testng?

来自分类Dev

在Julia中将向量作为命令行参数传递

来自分类Dev

如何使用C#在Python中将字符串作为命令行参数传递

来自分类Dev

如何使用C#在Python中将字符串作为命令行参数传递

来自分类Dev

如何在命令行中将参数数组传递给cURL?

来自分类Dev

如何在Ubuntu 16.04中将命令行参数传递给atd init脚本

来自分类Dev

如何在C编程getopt_long中将tab和newline char之类的转义序列作为命令行参数传递?

来自分类Dev

如何在kubernetes中传递命令行参数?

来自分类Dev

如何在awk脚本中传递命令行参数

来自分类Dev

如何在命令行中使用传递的参数

来自分类Dev

如何在命令行中传递分组参数

来自分类Dev

如何在 sbatch 命令行中传递参数?

来自分类Dev

可以在Bash中将文字字符*作为命令行参数传递吗?

来自分类Dev

为什么在Java中将命令行参数作为String数组传递?

来自分类Dev

从脚本中将包含空格的字符串作为命令行参数传递

来自分类Dev

如何将XML文件内容作为命令行参数传递给Java命令?

来自分类Dev

如何将XML文件内容作为命令行参数传递给Java命令?

来自分类Dev

如何在gdb中将命令的输出作为参数传递?

来自分类Dev

Git将gitignore文件作为命令行参数传递

来自分类Dev

Linux将连续输出作为命令行参数传递

来自分类Dev

将'*'作为命令行参数传递给Shell脚本

来自分类Dev

如何将CRLF作为参数传递给命令行程序?

来自分类Dev

我应该如何将密码(包含特殊字符)作为命令行参数传递?

来自分类Dev

如何通过命令行将变量作为参数传递给CasperJS脚本?

来自分类Dev

如何将Shell变量作为命令行参数传递给Shell脚本

Related 相关文章

  1. 1

    如何在命令行中将哈希作为可选参数传递给-M

  2. 2

    如何在Python中将“开始日期”和“结束日期”作为命令行参数传递

  3. 3

    如何在shell脚本中将变量作为参数传递给Bigquery命令行

  4. 4

    如何在shell脚本中将表名作为参数传递给Bigquery命令行

  5. 5

    如何在命令行中将参数传递给testng?

  6. 6

    在Julia中将向量作为命令行参数传递

  7. 7

    如何使用C#在Python中将字符串作为命令行参数传递

  8. 8

    如何使用C#在Python中将字符串作为命令行参数传递

  9. 9

    如何在命令行中将参数数组传递给cURL?

  10. 10

    如何在Ubuntu 16.04中将命令行参数传递给atd init脚本

  11. 11

    如何在C编程getopt_long中将tab和newline char之类的转义序列作为命令行参数传递?

  12. 12

    如何在kubernetes中传递命令行参数?

  13. 13

    如何在awk脚本中传递命令行参数

  14. 14

    如何在命令行中使用传递的参数

  15. 15

    如何在命令行中传递分组参数

  16. 16

    如何在 sbatch 命令行中传递参数?

  17. 17

    可以在Bash中将文字字符*作为命令行参数传递吗?

  18. 18

    为什么在Java中将命令行参数作为String数组传递?

  19. 19

    从脚本中将包含空格的字符串作为命令行参数传递

  20. 20

    如何将XML文件内容作为命令行参数传递给Java命令?

  21. 21

    如何将XML文件内容作为命令行参数传递给Java命令?

  22. 22

    如何在gdb中将命令的输出作为参数传递?

  23. 23

    Git将gitignore文件作为命令行参数传递

  24. 24

    Linux将连续输出作为命令行参数传递

  25. 25

    将'*'作为命令行参数传递给Shell脚本

  26. 26

    如何将CRLF作为参数传递给命令行程序?

  27. 27

    我应该如何将密码(包含特殊字符)作为命令行参数传递?

  28. 28

    如何通过命令行将变量作为参数传递给CasperJS脚本?

  29. 29

    如何将Shell变量作为命令行参数传递给Shell脚本

热门标签

归档