【发布时间】: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和朋友似乎没有在脚本模式下使用,因此您无法以简单的方式破解它来打印所有输出,以防万一您需要。我想我读过免费的第三方“前端”,它们与早期版本基本相同,但我真的不记得了......