名称
wolfram
— 在控制台 (console) 界面中启用 Wolfram 语言内核.
概要
wolfram
wolfram -activate actkey
wolfram -script file
wolfram -run initcode
说明
wolfram
在操作系统控制台或 shell 上运行独立的 Wolfram 语言内核. 基于控制台的内核会话一般从 读取输入,计算表达式并打印结果给 . 输入和输出可以使用标准的 shell 机制重新定向. 在某些系统中,wolfram
和 WolframKernel
是同样的程序.
选项
许可证选项
-activate actkey
— 执行或验证激活并退出.
-licenseid
— 显示 $LicenseID 值并退出.
-licenseinfo
— 显示 $LicenseID 值以及相关信息并退出.
-lmverbose
— 将与 MathLM 交互的信息输出到标准错误.
启动选项
执行模式选项
-script file
— 在脚本模式中执行来自 的指令.
-noprompt
— 不显示标语或 In[] 和 Out[] 提示或由于启动错误询问用户输入(对于批脚本有用).
实用选项
-machineid
— 显示 $MachineID 值并退出.
-machineinfo
— 显示 $MachineName 和 $MachineID,由制表符分隔并退出.
更多信息
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 语言代码,只显示明确打印的表达式:
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 值的路径.