WolframKernel

名称

WolframKernel 启动独立的 Wolfram 语言内核.

概要

WolframKernel

WolframKernel -wstp

WolframKernel -run initcode

说明

WolframKernel 运行独立的 Wolfram 语言内核. 独立内核会话一般从设备读取输入(典型的键盘或一个 WSTP 连接),计算表达式并把结果打印到设备(一般是屏幕或一个 WSTP 连接). 在某些系统中,WolframKernelwolfram 是同样的程序.

选项

启动选项

-initfile file 在初始化 中执行命令.

-noinit 不要从标准位置读取初始化文件.

-run cmd 启动时执行指令 .

许可证选项

-lmverbose 打印与 MathLM 交互的相关信息.

-pwfile file file 读取许可证密码.

执行模式选项

-wstp 只通过 WSTP 通信.

-noicon 在独立窗口启动内核的平台,例如,Windows,隐藏窗口并禁止在操作系统任务栏中输入.

-noprompt 不打印标语或弹出 In[]Out[] 或由于启动错误询问用户输入(对批处理脚本有用).

-script file 在脚本模式中执行 中的指令.

-threadpriority p 在 Windows,指定内核进程的相关优先级.

更多信息

启动

当给出 -wstp,任何一般由 WSOpenArgcArgv 理解的 WSTP 选项也会在指令行给出.

在独立窗口启动内核的平台,例如: Windows,在 WSTP 模式中窗口被最小化. 添加 -noicon 会另外禁止在操作系统任务栏中的输入.

内核会读取环境变量 的值并把它的值追加到任何指令行参数的值.

只适用于 Windows 的参数 -threadpriority 选项可以是 ,默认值是 . 正数表明内核比正常更高的优先级运行,负数表明低于正常优先级.

如果密码文件使用 -pwfile 指定,则首先尝试它的密码. 如果没有找到有效的密码,则尝试标准系统位置中的密码文件.

当给出 -noprompt,变量 $BatchOutput 会设为 True. 另外,启动时,省略 In[]Out[] 标签和标语,Wolfram 语言产生所有 InputForm 的输出,其中,PageWidth 选项有效地设为 Infinity.

Wolfram 语言脚本

如果给出 -script 指令行选项,内核执行来自批处理、或脚本模式中的 指令然后终止.

在脚本模式,内核不打印标语并且没有 In[]Out[] 标签,并产生所有 InputForm 输出,其中,PageWidth 选项有效设置为 Infinity.

在脚本模式中,如果文件起始字符为 "#!",内核则忽略文件的首行.

范例

交互式操作

在交互式 REPL 中运行 Wolfram 语言:

$ WolframKernel
Wolfram {RelatedLinks-NeuralNetRepository.png}.{RelatedLinks-NeuralNetRepository.png} Kernel for {RelatedLinks-NeuralNetRepository.png}
Copyright 1988-{RelatedLinks-NeuralNetRepository.png} Wolfram Research, Inc.

In[1]:= 2+2

Out[1]= 4

In[2]:= 

WSTP

启动内核并创建一个 WSTP 链接:

$ WolframKernel -wstp -linkcreate
Link created on: mvg8t_shm

从另一个会话,连接链接,激活并清除输入:

把计算发给链接的内核并与当前的内核比较结果:

关闭链接:

在 Windows 操作系统禁止任务栏输入:

$ WolframKernel -noicon -wstp -linkcreate
Link created on: z5hmx_shm

指令行的初始化

启动时使用 -run 选项设置变量:

$ WolframKernel -run 'AppendTo[$Path, "/favorite/path"]'
Wolfram {RelatedLinks-NeuralNetRepository.png}.{RelatedLinks-NeuralNetRepository.png} Kernel for Mac OS X ARM (64-bit)
Copyright 1988-{RelatedLinks-NeuralNetRepository.png} Wolfram Research, Inc.

In[1]:= Last[$Path]

Out[1]= /favorite/path

In[2]:=

通过添加明确的 Exit[]-run 选项可用于计算表达式并退出:

$ WolframKernel -run 'Print[\"Hello World\"];Exit[]'
Wolfram {RelatedLinks-NeuralNetRepository.png}.{RelatedLinks-NeuralNetRepository.png} Kernel for Linux x86 (64-bit)
Copyright 1988-{RelatedLinks-NeuralNetRepository.png} Wolfram Research, Inc.
Hello World

从文件初始化

custom_init.wl 追加到初始化文件的标准列表:

$ WolframKernel -initfile custom_init.wl

避免加载任何初始化文件:

$ WolframKernel -noinit

只使用 custom_init.wl 作为初始化文件:

$ WolframKernel -noinit -initfile custom_init.wl

其他范例

允许内核使用不同的密码文件运行:

$ WolframKernel -pwfile "/path/to/mathpass"

计算来自文件的 Wolfram 语言代码并退出:

$ WolframKernel -script test.wl

禁止在 Windows 操作系统打开分离的窗口和任务栏输入

$ WolframKernel -script test.wl -noicon

文件

用户初始化文件位置:

  • $BaseDirectory/Kernel/init.m
    $UserBaseDirectory/Kernel/init.m
  • 密码文件位置:

  • $BaseDirectory/Licensing/mathpass
    $UserBaseDirectory/Licensing/mathpass
    $InstallationDirectory/Configuration/Licensing/mathpass
  • WOLFRAM 语言变量

    $BatchOutput -noprompt 是否已在命令行上给出.

    $CommandLine 字符串列表给出使用的完整指令行.

    $Epilog 内核退出时执行的指令.

    $IgnoreEOF 即使给出了文件结束符,wolfram 是否应继续.

    $PasswordFile 成功激活 wolfram 的密码文件的路径.

    环境变量

    WOLFRAMINIT 追加每个 WolframKernel 调用的附加参数.

    MATHKERNELINIT 如果没有定义 WOLFRAMINIT,则读取的旧变量.

    WOLFRAM_BASE 用于 $BaseDirectory 值的路径.

    WOLFRAM_USERBASE 用于 $UserBaseDirectory 值的路径.

  • 系统管理指南