如何在 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 编写脚本。如果您使用math
或MathKernel -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?的主要内容,如果未能解决你的问题,请参考以下文章
如何从库函数中访问 c++ 中的 argc 和 argv