wolfram

名称

wolfram 在控制台 (console) 界面中启用 Wolfram 语言内核.

概要

wolfram

wolfram -activate actkey

wolfram -script file

wolfram -run initcode

说明

wolfram 在操作系统控制台或 shell 上运行独立的 Wolfram 语言内核. 基于控制台的内核会话一般从 读取输入,计算表达式并打印结果给 . 输入和输出可以使用标准的 shell 机制重新定向. 在某些系统中,wolframWolframKernel 是同样的程序.

选项

许可证选项

-activate actkey 执行或验证激活并退出.

-licenseid 显示 $LicenseID 值并退出.

-licenseinfo 显示 $LicenseID 值以及相关信息并退出.

-lmverbose 将与 MathLM 交互的信息输出到标准错误.

-pwfile file 中读取密码.

启动选项

-initfile file 执行初始化 中的指令.

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

-run cmd 启动时运行指令 .

执行模式选项

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

-noprompt 不显示标语或 In[]Out[] 提示或由于启动错误询问用户输入(对于批脚本有用).

-rawterm 假设一个哑终端并禁用光标键导航.

-wstp 只通过 WSTP 通讯.

实用选项

-machineid 显示 $MachineID 值并退出.

-machineinfo 显示 $MachineName$MachineID,由制表符分隔并退出.

-version 显示产品版本并退出.

更多信息

Wolfram 语言脚本

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

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

在脚本模式中,标准输入和输出不重定向,因此,输入和输出可用于有其他进程的管道中.

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

许可证选项

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

-activate actkey 中,格式 $ActivationKey 的密钥会执行在线激活,验证密钥并通过因特网联系 Wolfram 产品激活服务器下载最新密码. 格式为 "$ActivationKey password" 的密钥会执行不使用因特网的离线激活. 在上述情况下,如果激活成功,则返回零,否则,返回非零值.

选项 -licenseinfo 打印 $LicenseID 的值,此许可证的允许的最大 Wolfram 语言进程数和可用进程数,以制表符分隔. 如果未找到有效许可证,则所有三个字段打印零,并返回非零退出状态.

启动和关闭

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

除非 Wolfram 语言变量 $IgnoreEOF 被设为 True,否则,当收到文件结束符序列,内核会退出. 当给出指令 Quit,内核会总是退出.

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

如果由于许可证或其他问题,内核不能启动,则会返回非零退出代码. 一般在终止前会返回零退出代码,除非, Exit[n] 被用于返回其他值.

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

范例

交互式操作

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

$ wolfram
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]:= 

退出带有自定义退出代码的交互式内核:

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

In[1]:= Exit[5]

验证 Unix-风格的 shell 中的退出代码:

$ echo $?
5

验证 Windows cmd.exe shell 中的退出代码:

> echo %ERRORLEVEL%
5

来自文件中的代码

计算文件中的 Wolfram 语言代码,只显示明确打印的表达式:

file.wls
sum=2+2
integral=Integrate[1,x]
Print["Results: ",{sum,integral}]
$ wolfram -script test.wl
Results: {4, x}

计算文件中的 Wolfram 语言代码,打印每个输出:

$ wolfram < test.wl
Wolfram {RelatedLinks-NeuralNetRepository.png}.{RelatedLinks-NeuralNetRepository.png} Kernel for {RelatedLinks-NeuralNetRepository.png}
Copyright 1988-{RelatedLinks-NeuralNetRepository.png} Wolfram Research, Inc.

In[1]:= 
Out[1]= 4

In[2]:= 
Out[2]= x

In[3]:= Results: {4, x}

In[4]:=

省略标语和输入/输出提示,并在 InputForm 中格式化结果:

$ wolfram -noprompt < test.wl
4
x
"Results: "{4, x}

指令行的初始化

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

$ wolfram -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 选项可用于计算表达式并退出:

$ wolfram -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 追加到初始化文件的标准列表:

$ wolfram -initfile custom_init.wl

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

$ wolfram -noinit

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

$ wolfram -noinit -initfile custom_init.wl

激活

使用激活密钥进行自动激活:

$ wolfram -activate 1234-5678-ABCDEF

Automatic Web Activation received a password.

Creating password file entry in:
C:\Users\user\AppData\Roaming\Mathematica\Licensing\mathpass

验证许可证,最大进程数和可用进程(以制表符分隔):

$ wolfram -licenseinfo
L1234-5678      8       8

使用激活密钥和密码执行脱机激活:

$ wolfram -activate "1234-5678-ABCDEF 1234-567-890:8,8,16,16::20190130"
Creating password file entry in:
C:\Users\user\AppData\Roaming\Mathematica\Licensing\mathpass

其他范例

检查安装版本:

$ wolfram -version
{RelatedLinks-NeuralNetRepository.png}.{RelatedLinks-NeuralNetRepository.png} for {RelatedLinks-NeuralNetRepository.png}

检查 $MachineID 的值:

$ wolfram -machineid
6202-11889-09929

打印 $MachineName$MachineID,由制表符分隔,如同在密码文件条目中一样:

$ wolfram -machineinfo
lap27    6202-11889-09929

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

$ wolfram -pwfile "/path/to/mathpass"
Wolfram {RelatedLinks-NeuralNetRepository.png}.{RelatedLinks-NeuralNetRepository.png} Kernel for {RelatedLinks-NeuralNetRepository.png}
Copyright 1988-{RelatedLinks-NeuralNetRepository.png} Wolfram Research, Inc.

In[1]:=

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

$ wolfram -wstp -linkcreate
Link created on: mvg8t_shm

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

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

关闭链接:

文件

用户初始化文件位置:

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

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

    $ActivationKey wolfram 使用的完整激活密钥.

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

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

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

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

    $MachineID 运行 wolfram 的主机的唯一识别码.

    $MachineName 运行 wolfram 的主机的名称.

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

    环境变量

    WOLFRAMINIT 每次调用 WolframKernel 时附加的参数.

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

    WOLFRAM_BASE 用于 $BaseDirectory 值的路径.

    WOLFRAM_USERBASE 用于 $UserBaseDirectory 值的路径.

  • 系统管理指南