前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lua 调用外部系统脚本返回值问题

Lua 调用外部系统脚本返回值问题

作者头像
收心
发布2022-12-01 16:49:39
1.2K0
发布2022-12-01 16:49:39
举报
文章被收录于专栏:Java实战博客

本页目录

废话不多说,直接上案例!

某脚本文件为

代码语言:javascript
复制
if abc = 1 then
  return "666"
else
  return "888"
end

这个脚本之行后,会有一个返回值 “666” 或者 “888”

我们调用os.execute(XXX)执行此脚本

代码语言:javascript
复制
os.execute('lua XXXX.lua')
-- 返回值个数只有1个,0代表执行成功

可见 os.execute 没有有效的返回值。我们更换io.popen

io.popen

注意,此方法返回值是File,我们需要读取文件,然后关闭文件。

注意,我们脚本的return的内容不会有效,我们直接print(写在返回文件流的内容)即可!

特别强调:如果需要单行读取文件,使用文件对象:read()就是读取一行,nil就不要再读了

代码语言:javascript
复制
local returnfile = io.popen('lua XXX.lua')
local result = returnfile:read("*a")
returnfile.close()

可能直接写成(但是我不知道io.close()是不是一个对象,还是说io.close()将此线程的所有io对象全部关闭了)

代码语言:javascript
复制
local result = io.popen('lua XXX.lua'):read("*a")
io.close()

特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 某脚本文件为
  • 我们调用os.execute(XXX)执行此脚本
  • io.popen
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档