So when I copied the file into the question above, I copied from the Mathematica front-end, which interprets the file contents slightly differently. The contents of the file is actually #!/usr/bin/env wolframscript M[a_, T_] := (4 π^2 a^3)/(G T^2) /. { G -> Quantity["GravitationalConstant"] } (* Assuming inclined around major axis, no change to major axis *) m1 = M[a, T] /. { T -> Quantity[15.7, "Years"], a -> 0.183 * 60^-2 * π/180 * Quantity[7.9, "Kiloparsecs"] } // UnitConvert; Print["Assuming inclined around major axis: M = " <> ToString[m1, InputForm]] m1S = UnitConvert[m1, "SolarMass"]; Print["\t = " <> ToString[m1S, InputForm]] I had input π as a unicode symbol. Wolframscript didn't interpret this as the constant Pi, but when I open the file with the front-end it automatically converts any instance of π to `\[Pi]`. The command line input was therefore unable to evaluate the expression as it doesn't know what the symbol π is, and there also seems to be some encoding issues in the output. Strangely the unicode input seems to work if I invoke the file with `wolframscript -script`, but not just with `wolframscript` or with `wolframscript -file`. (This seems to be discussed [here](https://mathematica.stackexchange.com/questions/174076/passing-utf-8-to-wolframscript-on-the-command-line).) Sorry to waste anyone's time with an incorrect question. Mea culpa!