lua中执行luci.sys.call、luci.sys.exec、os.execute的区别

这篇具有很好参考价值的文章主要介绍了lua中执行luci.sys.call、luci.sys.exec、os.execute的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相同点:都是调用Linux底层脚本及程序
不同点:
(1)luci.sys.call(command)
脾气捉摸不透,实际使用有些时候没有得到任何状态或数据返回,纯粹被用了一下。
(2)luci.sys.exec(command)
比较可靠,可以返回标准输出,比如value = luci.sys.exec(command)获取执行结果用作参量。
message = luci.sys.exec(command 2>&1)则错误、标准都输出,用作显示执行过程。
(3)os.execute(command)
可以得到命令的运行状态,执行成功则得到 true,失败则得到 false,但不会标准输出 0 或 1。常用作判断。比如

if os.execute('ls "'..file..'" >nul 2>nul') ~= 0 then
    message = '文件不存在'
end
但下面这样使用却是不行的(因为不会标准输出 0 或 1):
value = os.execute('ls "'..file..'" >nul 2>nul') 
if value ~= 0 then
    message = '文件不存在'
end

实际使用发现:当执行过程要耗费很长时间(比如复制一个很大的文件)时,luci.sys.exec会一直到执行结束才返回数据。而os.execute却没有,很快返回(但并不是每个命令都这样,捉摸不透)。luci.sys.call用得少,没留意。文章来源地址https://www.toymoban.com/news/detail-640812.html

到了这里,关于lua中执行luci.sys.call、luci.sys.exec、os.execute的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • golang使用os/exec库查询进程

    本文主要介绍如何使用os/exec库查询进程。 输出: 上述代码逻辑会获取到当前系统中所有运行的进程,但如果只需要获取制定进程信息呢,就需要针对进程进行过滤。 第一种方式: 输出: 第二种方式: 输出:

    2024年02月11日
    浏览(26)
  • Python模块和包:sys模块、os模块和变量函数的使用

    模块化指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序。模块化具有方便开发、维护和复用的优点。在Python中,每个py文件就是一个模块。 在一个模块中引入外部模块有两种方式: import 模块名 和 import 模块名 as 模块别名 。后者可以

    2024年02月08日
    浏览(28)
  • exec failed: unable to start container process: exec: “ip“: executable file not found in $PATH

    问题报错: 报错原因:因为该容器的镜像时精简版,内部缺少iproute2导致无法使用ip命令 解决方式: 进入容器 docker exec -it 容器名 /bin/bash 进入后: 更新apt apt-get update 安装iproute2 agt install -y iproute2 安装完以后退出exit docker exec -it 容器名 ip addr  修改后尝试结果: 同理  安装

    2024年02月13日
    浏览(39)
  • exec: “java“: executable file not found in $PATH: unknown错误处理

    kubesphere部署springboot项目时,出现下边错误信息 exec: \\\"java\\\": executable file not found in $PATH: unknown 原因: 本来是从docker仓库取镜像,所以源头应该是docker镜像打包时出的问题 处理方式: 修改dockerfile的ENTRYPOINT值: 然后重新发布就可以了

    2024年02月16日
    浏览(26)
  • 学习狂神docker报错解决:exec failed: unable to start container process: exec: “ip“: executable file not found

    问题:最近学习狂神的docker,34节,网络详解。下载tomcat镜像并启动成功。如图  在使用命令:   docker exec -it tomcat01 ip addr 查看容器ip地址时报错:OCI runtime exec failed: exec failed: unable to start container process: exec: \\\"ip\\\": executable file not found in $PATH: unknown  解决方案:安装工具 iproute

    2024年02月12日
    浏览(31)
  • xlua源码分析(二)lua Call C#的无wrap实现

    上一节我们主要分析了xlua中C# Call lua的实现思路,本节我们将根据Examples 03_UIEvent,分析lua Call C#的底层实现。例子场景里有一个简单的UI面板,面板中包含一个input field,一个button: 输入任意文本,点击button,就会打印出输入的内容: 响应点击事件的代码是在lua层,位于 Bu

    2024年02月05日
    浏览(29)
  • 我在使用arduino编译时报错:exec: “cmd“: executable file not found in %PATH%

    真是气死我了,第一次因为一个错误搞半天,所以在这里把答案告诉大家,省的和我一样烦躁 我遇到了exec: “cmd”: executable file not found in %PATH%这个报错,然后使用的的板子是esp32,之前8266没有遇到这样的错误,找了好多答案都是说在环境变量path里加入“C:WindowsSystem32cmd.

    2024年02月14日
    浏览(21)
  • HTTP.sys远程代码执行

    本文转载与:https://blog.csdn.net/weixin_47723270/article/details/129472716 HTTP.sys是Microsoft Windows处理HTTP请求的内核驱动程序,为了优化IIS服务器性能,从IIS6.0引入,IIS服务进程依赖HTTP.sys。HTTP.sys远程代码执行漏洞实质是HTTP.sys的整数溢出漏洞,当攻击者向受影响的Windows系统发送特殊设计

    2024年02月05日
    浏览(26)
  • Http.sys远程代码执行漏洞复现

    Http.sys是Microsoft Windows处理HTTP请求的内核驱动程序。HTTP.sys会错误解析某些特殊构造的HTTP请求,导致远程代码执行漏洞。成功利用此漏洞后,攻击者可在System帐户上下文中执行任意代码。由于此漏洞存在于内核驱动程序中,攻击者也可以远程导致操作系统蓝屏。此次受影响的

    2023年04月26日
    浏览(26)
  • HTTP.sys远程代码执行漏洞修复

    Http.sys是Microsoft Windows处理HTTP请求的内核驱动程序。HTTP.sys会错误解析某些特殊构造的HTTP请求,导致远程代码执行漏洞。成功利用此漏洞后,攻击者可在System帐户上下文中执行任意代码。由于此漏洞存在于内核驱动程序中,攻击者也可以远程导致操作系统蓝屏。此次受影响的

    2024年02月02日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包