Parameters 为什么以及何时我要使用参数;代码“;Lua中os.exit()函数的
在Lua文档中,他们说Parameters 为什么以及何时我要使用参数;代码“;Lua中os.exit()函数的,parameters,lua,operating-system,exit,Parameters,Lua,Operating System,Exit,在Lua文档中,他们说os.exit([code])中的code参数在退出脚本时返回一个非0的值,比如,如果我运行以下行: 操作系统退出(7) 它将产生以下输出: 退出代码:7 我的问题是为什么以及何时更改脚本的退出值有用?例如,何时何地使用此退出代码“7”?该值返回到运行Lua解释器的进程;C语言也有同样的功能 通常,脚本成功执行时返回0,出现某种错误时返回非零值。如果从另一个脚本调用Lua脚本,则错误代码可以指导调用脚本处理错误 在Bash中,可以通过检查$?shell变量来检查返回值:
os.exit([code])
中的code
参数在退出脚本时返回一个非0的值,比如,如果我运行以下行:
操作系统退出(7)
它将产生以下输出:
退出代码:7
我的问题是为什么以及何时更改脚本的退出值有用?例如,何时何地使用此退出代码“7”?该值返回到运行Lua解释器的进程;C语言也有同样的功能 通常,脚本成功执行时返回
0
,出现某种错误时返回非零值。如果从另一个脚本调用Lua脚本,则错误代码可以指导调用脚本处理错误
在Bash中,可以通过检查$?
shell变量来检查返回值:
$lua-e“操作系统退出(7)”
$echo$?
7.
如果使用从另一个Lua脚本调用Lua脚本,则退出代码是三个返回值中的第三个:
handy\u脚本
:
#!/usr/bin/env lua
io.write(string.format("Doing something important...\n"))
os.exit(7)
#!/usr/bin/env lua
b, s, n = os.execute("./handy_script")
io.write(string.format("handy_script returned %s, %s: %d\n", tostring(b), s, n))
主脚本
:
#!/usr/bin/env lua
io.write(string.format("Doing something important...\n"))
os.exit(7)
#!/usr/bin/env lua
b, s, n = os.execute("./handy_script")
io.write(string.format("handy_script returned %s, %s: %d\n", tostring(b), s, n))
$。/main\u脚本
做一些重要的事情。。。
handy_脚本返回零,退出:7
os.execute
返回的第一个值是布尔值true
,如果命令成功执行,fail
否则(从Lua 5.4开始,fail
仍然等于nil
)。如果命令正常终止,则返回的第二个值是字符串“exit”
,如果命令被信号终止,则返回字符串“signal”
。返回的第三个值是调用os.exit()
,这里是7
的退出代码