如何在 Mathematica 中访问 ARGV?

Posted

技术标签:

【中文标题】如何在 Mathematica 中访问 ARGV?【英文标题】:How do you access ARGV in Mathematica? 【发布时间】:2011-12-19 20:01:58 【问题描述】:

我想在 Mathematica 中编写命令行脚本,但我似乎找不到类似 Argv[i_Integer] 的函数。 (否则文档非常棒。)

【问题讨论】:

类似问题:If doing “math foo bar”, how to get foo and bar inside Mathematica? 【参考方案1】:

似乎$ScriptCommandLine 是您需要的变量,假设您使用MathematicaScript 编写脚本。如果您使用mathMathKernel -script,它将是$CommandLine。

其他相关讨论:rather old one 和 MMA 中的一个toolbag。

【讨论】:

谢谢。不幸的是,MathKernel$ScriptCommandLine 报告为空,无论提供的实际参数如何。和MathematicaScript 报告Could not find Mathematica installation directory. @mcandre 可执行文件在您的路径上吗? @mcandre .... 你在文档中看到这一行吗:“脚本的第一行必须包含 -script 选项,它必须是 last选项就行了。” @mcandre "如果没有提供 -script 选项,$ScriptCommandLine 会给出一个空列表。" @mcandre 这一切仍然假设您使用的是 MathematicaScript。【参考方案2】:

我喜欢使用环境变量传递东西:

http://reference.wolfram.com/mathematica/ref/Environment.html

【讨论】:

有帮助,但它比指定命令行标志更手动。【参考方案3】:

$CommandLine 适用于 Mathematica、MathematicaScript、MathKernel 和数学。

args.ma:

#!/usr/bin/env MathKernel -script

Print[$CommandLine]

例子:

$ ./args.ma a b c
"MathKernel", "-script", "./args.ma", "a", "b", "c"

【讨论】:

以上是关于如何在 Mathematica 中访问 ARGV?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 main() 函数外部访问 argv[]?

如何从库函数中访问 c​​++ 中的 argc 和 argv

如何在 Mathematica 中显示求和函数而不是扩展整个系列?

mathematica中如何曲线拟合

如何在 Mathematica 中计算和绘制瞬时相位

如何在mathematica 5.0 中求曲线在某个区间的最大值和最小值和某点的斜率?