Mathematica 会话

命令行选项和环境变量

-pwfileMathematica 密码文件
-pwpath搜索 Mathematica 密码文件的路径
-run用以运行的 Mathematica 输入(仅包括内核)
-initfileMathematica 初始化文件
-initpath用于搜索初始化文件的路径
-noinit不运行初始化文件
-mathlink只通过 MathLink 通讯

Mathematica 可执行文件的典型命令行选项.

如果 Mathematica 前端使用作为命令行参数的笔记本文件调用,那么该笔记本将成为最初选中的笔记本. 否则,将因此创建一个新的笔记本.

Mathematica 内核和前端也可以使用对于特定窗口环境专用的其他命令行选项.

MATHINITMathematica 前端的命令行环境
MATHKERNELINITMathematica 内核的命令行环境
MATHEMATICA_BASE$BaseDirectory 的设置
MATHEMATICA_USERBASE$UserBaseDirectory 的设置

环境变量.

Mathematica 将读取操作系统环境变量的值,并且将把这些值作为给定的任意命令行选项的附加来使用.

初始化

在启动的时候,Mathematica 内核进行以下操作:

  • 运行许可证管理操作.
  • 运行传递给内核可执行文件的任意 选项中的 Mathematica 命令.
  • 在系统范围内的初始化文件 中运行 Mathematica 命令.
  • 在用户指定的初始化文件 中运行 Mathematica 命令.
  • 在自动加载目录中载入 文件.
  • 开始运行主循环.
  • 主循环

    所有 Mathematica 会话重复执行以下主循环:

  • 读取输入.
  • 对已定义的输入字符串运用 $PreRead 函数.
  • 如果需要的话,显示语法警告.
  • 如果有语法错误的话,运用 $SyntaxHandler 函数.
  • 赋以 InString[n].
  • 对已定义的输入表达式运用 $Pre 函数.
  • 赋以 In[n].
  • 计算表达式.
  • 运用已定义的 $Post 函数.
  • 赋以 Out[n],解开任何格式化的包装.
  • 运用已定义的 $PrePrint 函数.
  • 赋以 MessageList[n] 并且清除 $MessageList.
  • 如果表达式不为 Null,显示该表达式.
  • 增加 $Line.
  • 清除任何待处理的退出.
  • 注意,如果用户从外部程序的 MathLink 中调用 Mathematica,那么用户必须有效地创建自己的主循环,这通常与上述描述的过程不同.

    消息

    在一个 Mathematica 会话中,消息或者可以通过对 Message 的明确调用,或者在执行其它内置函数的过程中产生.

    f::name::lang在指定语言中的消息
    f::name在默认语言中的消息
    General::name具有给定名称的一般消息

    消息名称.

    如果对一个特定的消息没有指定语言,那么消息文本在每个由 $Language 指定的语言中搜索. 如果 未被定义,那么搜索 General::name 的定义. 如果仍然未找到消息,那么对 运用给 $NewMessage 定义的任意值.

    当阻止消息在计算过程中显示,Quiet[expr] 计算 expr. Off[message] 阻止指定的消息显示. Check 允许用户决定是否在表达式计算过程中产生特定消息. $MessageListMessageList[n] 记录所有在 Mathematica 会话的一个特定行的计算过程中产生的所有消息.

    消息被指定为用于 StringForm 的第一个变量的字符串. $MessagePrePrint 被用于每个拼接为字符串的表达式.

    终止

    Exit[] 或者 Quit[]终止 Mathematica
    $EpilogMathematica 退出前计算的符号
    $IgnoreEOF当接收到一个文件末尾的字符,是否退出交互式 Mathematica 会话
    end.mMathematica 终止时读取的文件

    Mathematica 终止.

    我们有一些方式可以终止一个 Mathematica 会话. 如果用户正在交互式地使用 Mathematica,在一个输入行键入Exit[] 或者 Quit[] 将总是终止 Mathematica.

    如果用户从一个文件获取 Mathematica 的输入,那么当它到达文件末尾时 Mathematica 将退出. 如果用户正在交互式地使用 Mathematica,如果它收到一个文件结束字符(通常为 Ctrl+d),它仍然将退出. 用户可以通过设置 $IgnoreEOF=True 终止 Mathematica 的运行.

    网络许可证管理

    单机许可证进程必须总是运行在特定的机器上
    网络许可证进程可以运行在网络的任意机器上

    单机和网络许可证.

    Mathematica 的副本可以使用单机或者网络许可证设置. 一个网络许可证是由以 !name 开头的 文件中的行指示的,其中 name 是网络许可证的服务器名.

    网络许可证由 Mathematica 许可证管理程序 控制,它运行在服务器上. 无论什么时候使用具有网络许可证的 Mathematica,程序必须在运行. 通常用户想要设置自己的系统,使得无论什么时候启动系统,也启动 .

    • 在命令行直接输入
    • 把 作为 Windows 服务加入

    在 Microsoft Windows 中启动网络许可证管理器的方式.

    • 在 Unix 命令行直接输入
    • 在中心系统启动脚本中加入一行以启动

    在 Macintosh 和 Unix 系统中启动网络许可证管理器的方式.

    不是直接从命令行启动的时候,它通常把自己设为背景进程,并且继续运行直到它明确被终止. 注意,如果一个 进程正在运行,那么任何其它用户试图启动的 进程将自动立即退出.

    -logfile filefile 写入许可证服务器行为日志
    -loglevel n如何做出详细日志条目(1至4)
    -logformat string使用由 string 指定的日志格式
    -language name用于消息的语言(默认为
    -pwfile file使用指定的 文件(默认为
    -timeout nn 个小时以后暂停已经停止的 Mathematica 任务的授权
    -restrict file使用指定的限制文件    
    -mathid打印许可证服务器的 MathID,然后退出
    -foreground在前台运行 ,登陆到
    -install 作为 Windows 服务安装(只用于 Microsoft Windows)
    -uninstall 作为 Windows 服务卸载(只用于 Microsoft Windows)

    的一些命令行选项.

    关于 的更多详细信息,参见 "Mathematica 系统管理".

    monitorlm监控网络许可证活动的程序
    monitorlm name许可证服务器 name 的监控活动

    监控网络许可证活动.

    如果 运行在可以启动网络浏览器的环境中,它将自动在浏览器中生成 HTML 输出. 否则,就会产生纯文本.

    -file file把输出写入文件
    -format spec使用指定格式 ( 或者
    -template file把指定文件作为输出的模板使用

    的一些命令行选项.

    New to Mathematica? Find your learning path »
    Have a question? Ask support »