Exit cod-6ren">
gpt4 book ai didi

parameters - 为什么以及何时使用 Lua 中 os.exit() 函数的参数 "code"

转载 作者:行者123 更新时间:2023-12-02 19:18:50 24 4
gpt4 key购买 nike

在 Lua 文档中,他们说 os.exit([code]) 中的 code 参数在退出脚本时返回一个非 0 的值,例如,如果我运行以下行:

os.exit(7)

它将产生以下输出:

>Exit code: 7

我的问题是为什么以及何时更改脚本的退出值有用?比如,我何时何地使用退出代码“7”?

最佳答案

该值返回给运行Lua解释器的进程; C 语言具有相同的功能。

通常,成功执行脚本时会返回 0,而出现某种错误时会返回非零值。如果从另一个脚本调用 Lua 脚本,错误代码可以指导调用脚本处理错误。

在 Bash 中,您可以通过检查 $? shell 变量来检查返回值:

$ 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: 7

如果命令成功执行,os.execute返回的第一个值是 bool 值true,否则fail(从Lua 5.4开始) ,fail 仍然相当于 nil)。如果命令正常终止,则返回的第二个值是字符串“exit”;如果命令由信号终止,则返回“signal”。返回的第三个值是调用 os.exit() 的退出代码,此处为 7

关于parameters - 为什么以及何时使用 Lua 中 os.exit() 函数的参数 "code",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63332954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com