从Mac OS X上的命令行以批处理模式运行Mathematica

Wil*_*son 6 macos command-line wolfram-mathematica

我想开始为我的Mathematica程序编写一些单元测试,并从命令行和一些Makefile控制所有内容.

似乎Mathematica 可以从命令行运行,但我看不到有关在Mac OS X上开始这样做的任何基本指令 - 有没有人以前做过这个?


更新:

像这样创建一个测试文件:

Print["hello"];
x := 1;
y = x+1;
z = y+1;
Print["y="ToString@y];
Print["z="ToString@z];
Quit[];

并运行它

/Applications/Mathematica.app/Contents/MacOS/MathKernel -noprompt < test.m
Run Code Online (Sandbox Code Playgroud)

是我最接近某种批处理的.但输出看起来很丑陋; 为脚本的每一行添加换行符!


"hello"




"y=2"

"z=3"

这是我最接近的脚本,仍然可以输出信息到控制台输出?我只使用Mathematica 6,但我希望这没有任何区别.

Wil*_*son 3

最后,这给出了我期望的输出:

/Applications/Mathematica.app/Contents/MacOS/MathKernel -noprompt -run "<<test.m"
Run Code Online (Sandbox Code Playgroud)

我认为有道理。将其添加到 my.bash_profile可以轻松执行(如mma test.m):

mma () { /Applications/Mathematica.app/Contents/MacOS/MathKernel -noprompt -run "<<$1" ; }
Run Code Online (Sandbox Code Playgroud)

另请参阅dreeves 的mashPerl 脚本,它可能比此方法具有优势。