Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mathematica in batch mode from the command line on Mac OS X

I'd like to start writing some unit tests for my Mathematica programs and control everything from the command line with some Makefiles.

It seems like Mathematica can be run from the command line but I can't see any basic instructions on getting started with doing this on Mac OS X — has anyone done this before?


Update:

Creating a test file like this:

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

And running it with

/Applications/Mathematica.app/Contents/MacOS/MathKernel -noprompt < test.m

is the closest I can get to some sort of batch processing. The output looks ugly, though; newlines are added for every line of the script!


"hello"




"y=2"

"z=3"

Is this the closest thing I can get to a script that can still output information to the console output? I'm only using Mathematica 6, but I hope that doesn't make a difference.

like image 336
Will Robertson Avatar asked Oct 22 '09 02:10

Will Robertson


1 Answers

This, finally, gives output like I'd expect it to:

/Applications/Mathematica.app/Contents/MacOS/MathKernel -noprompt -run "<<test.m"

Makes sense, I suppose. Adding this to my .bash_profile allows easy execution (as in mma test.m):

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

See also dreeves's mash Perl script, which may offer advantages over this approach.

like image 180
Will Robertson Avatar answered Oct 04 '22 23:10

Will Robertson