【问题标题】:Batch input and output in Mathematica?Mathematica 中的批量输入和输出?
【发布时间】:2011-07-01 00:36:16
【问题描述】:

最近我在 MathGroup 上发现了一些 old post,其中显示了未记录的命令行选项 -batchinput-batchoutput 的用法:

 If test.mma contains the following commands:

    a=2+2
    b=10!;
    a+b

 then, running Mathematica in batch mode, only output for the first and 
 third commands goes to stdout:

    # math -batchinput -batchoutput < test.mma

    4

    3628804

但是当试图在 Windows 下重现这种行为时,我只能在控制台窗口中打印出第一个输出。我做错了什么?

【问题讨论】:

  • 也许-script 选项(8 中的新选项)对您有用。但这不是一回事,Out= 行不会被打印出来。
  • @Szabolcs 请举例说明该选项的用法(或链接)。 Out= 标签不使用-batchoutput 选项打印。它和-script有什么区别?
  • @Aleksey,你有版本 8 吗?对于-script,除非您的程序执行一些明确的输出(例如使用Print),否则不会打印任何内容。请参阅“更多信息”下:reference.wolfram.com/mathematica/ref/program/MathKernel.html 只需运行 math -script file.m 即可将来自 file.m 的命令作为“脚本”运行。
  • @Szabolcs 我还没有版本 8,但我有兴趣了解它的新功能。所以脚本模式下的Print 将打印到控制台,尽管文档页面上说“在脚本模式下标准输入和输出没有被重定向”?
  • @Aleksey,在实践中,似乎唯一打印的是您从程序中明确打印的内容。就像任何简单的脚本语言一样。现在,您可以在 Mma 中编写小程序并以非交互方式运行它们,没有前端,也没有分散注意力的输出。 $Post 和朋友似乎没有在脚本模式下使用,因此您无法以简单的方式破解它来打印所有输出,以防万一您需要。我想我读过免费的第三方“前端”,它们与早期版本基本相同,但我真的不记得了......

标签: wolfram-mathematica


【解决方案1】:

我对其进行了测试并得到了两个数字作为输出。 但是,如果最后一个命令后面没有回车,则输出就是您发布的内容!

所以,请检查您是否以回车结束最后一行。

【讨论】:

  • 谢谢!问题是最后一行没有以换行符结尾。
  • @Alexey 也许carriage return 不会再返回了cbc.ca/news/world/story/2011/04/26/…
  • 其实最后一行后换行是不够的。大多数编辑器在最后一行之后插入换行符,即使他们没有显示它。您需要在末尾添加一个完整的空行来完成这项工作。
  • @Szabolcs 不在 my 机器上 :)
猜你喜欢
  • 1970-01-01
  • 2021-02-28
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
相关资源
最近更新 更多