Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parameters 为什么以及何时我要使用参数;代码“;Lua中os.exit()函数的_Parameters_Lua_Operating System_Exit - Fatal编程技术网

Parameters 为什么以及何时我要使用参数;代码“;Lua中os.exit()函数的

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变量来检查返回值:

在Lua文档中,他们说
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
的退出代码