软件脚本管理
脚本 "方法
#
engee.script.edit — Function
engee.script.edit(path::String)
在编辑器中打开位于路径path (包括文件名和扩展名)的交互式脚本。如果该文件不存在,则会在指定路径下创建一个空脚本文件并在编辑器中打开。如果path 中指定的扩展名与 '.ngscript' 不一致,则该函数将返回错误ErrorException("path should end with '.ngscript' extension") 。
示例
# 在脚本编辑器中打开脚本file 。ngscript Engee
engee.script.edit( "file.ngscript" )
#
engee.script.run — Function
engee.script.run(path::String; isolate::Bool = false)
运行指定路径下的脚本。返回脚本中最后一个顶级表达式的结果。
参数- path::String :脚本的绝对路径。
-
isolate::Bool = false:若值为true,则脚本在隔离环境中执行。默认值为false。若值为false,脚本在主用户环境中(Main模块)执行。所有全局或顶层声明的变量在执行结束后仍会被保留。 当true时,脚本将在临时隔离环境中执行。执行过程中创建的所有变量在脚本结束时均不会保留。
示例
考虑文件foo.ngscript ,其中包含唯一的代码单元:
x = 10
y = try
push!(a, :foo) # 尝试将 :foo 添加到现有数组中 `a`
5 # 如果一切正常——将y 赋值为5
catch _
3 # 如果发生错误——将y 赋值为3
end
x + y # 返回x 与y的和
在用户环境中(isolate = false )执行将修改变量x 和y ,并向数组а 中添加:foo :
a = Symbol[:bar, :baz] # 原始数组
x = y = 0 # 脚本运行前的变量
(engee.script.run("foo.ngscript"), x, y, a)
# ⇒ (15, 10, 5, [:bar, :baz, :foo])
# 脚本修改了变量x 和y ,并在数组a中添加了 :foo
在隔离环境中(isolate = true )执行时,该脚本不会影响外部变量,且所做的更改也不会被保存:
# 原始数组
a = Symbol[:bar, :baz]
# 脚本运行前的变量
x = y = 0
(engee.script.run("foo.ngscript"; isolate = true), x, y, a)
# ⇒ (13, 0, 0, [:bar, :baz])
# 脚本未影响外部变量——更改未被保存