相同點(diǎn):都是調(diào)用Linux底層腳本及程序
不同點(diǎn):
(1)luci.sys.call(command)
脾氣捉摸不透,實(shí)際使用有些時(shí)候沒(méi)有得到任何狀態(tài)或數(shù)據(jù)返回,純粹被用了一下。
(2)luci.sys.exec(command)
比較可靠,可以返回標(biāo)準(zhǔn)輸出,比如value = luci.sys.exec(command)
獲取執(zhí)行結(jié)果用作參量。message = luci.sys.exec(command 2>&1)
則錯(cuò)誤、標(biāo)準(zhǔn)都輸出,用作顯示執(zhí)行過(guò)程。
(3)os.execute(command)
可以得到命令的運(yùn)行狀態(tài),執(zhí)行成功則得到 true,失敗則得到 false,但不會(huì)標(biāo)準(zhǔn)輸出 0 或 1。常用作判斷。比如文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-640812.html
if os.execute('ls "'..file..'" >nul 2>nul') ~= 0 then
message = '文件不存在'
end
但下面這樣使用卻是不行的(因?yàn)椴粫?huì)標(biāo)準(zhǔn)輸出 0 或 1):
value = os.execute('ls "'..file..'" >nul 2>nul')
if value ~= 0 then
message = '文件不存在'
end
實(shí)際使用發(fā)現(xiàn):當(dāng)執(zhí)行過(guò)程要耗費(fèi)很長(zhǎng)時(shí)間(比如復(fù)制一個(gè)很大的文件)時(shí),luci.sys.exec會(huì)一直到執(zhí)行結(jié)束才返回?cái)?shù)據(jù)。而os.execute卻沒(méi)有,很快返回(但并不是每個(gè)命令都這樣,捉摸不透)。luci.sys.call用得少,沒(méi)留意。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-640812.html
到了這里,關(guān)于lua中執(zhí)行l(wèi)uci.sys.call、luci.sys.exec、os.execute的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!