在Lua文档中,他们说os.exit([code])中的os.exit([code])参数在退出脚本时返回的值不是0,例如,如果我运行以下行:
os.exit(7)它将产生以下产出:
>Exit code: 7我的问题是,为什么以及什么时候更改脚本的退出值是有用的?比如,何时何地使用这个退出代码"7"?
发布于 2020-08-10 01:48:43
该值返回给运行Lua解释器的进程;C语言具有相同的功能。
通常,在成功执行脚本时返回0,在出现某种错误时返回一个非零值。如果从另一个脚本调用Lua脚本,则错误代码可以指导调用脚本处理错误。
在Bash中,可以通过检查$?外壳变量来检查返回的值:
$ lua -e "os.exit(7)"
$ echo $?
7如果使用os.execute从另一个Lua脚本调用Lua脚本,则退出代码是三个返回值中的第三个:
handy_script
#!/usr/bin/env lua
io.write(string.format("Doing something important...\n"))
os.exit(7)main_script
#!/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_script
Doing something important...
handy_script returned nil, exit: 7os.execute返回的第一个值是布尔值(如果命令已成功执行,则为fail )(从Lua5.4开始,fail仍然等同于nil)。返回的第二个值是字符串"exit",如果命令正常终止,则返回"signal"。返回的第三个值是对os.exit()调用的退出代码,这里是7。
https://stackoverflow.com/questions/63332954
复制相似问题