Ваш фрагмент кода содержит синтаксическую ошибку, правильный код должен выглядеть следующим образом:
local status, err = pcall(os.execute, "/System/Library/Frameworks/Kakao.framework/KAImage.lua")
print(status, err)
Я не думаю, что выполнение файла Lua с использованием os.execute
- хорошая идея.Он будет работать с правильным shebang, но будет порождать отдельный процесс (ы).
IMO, что вам нужно это dofile(lua_file_name)
:
Открывает указанный файл и выполняет его содержимое какЛуа Чанк.... Возвращает все значения, возвращаемые чанком.В случае ошибок, dofile передает ошибку вызывающей стороне (то есть, dofile не запускается в защищенном режиме).
Задача pcall - перехватывать ошибки, если вам нужно их перехватить.ошибка, вы можете использовать код, как показано ниже:
local chunk, err = loadfile(lua_file_name)
if not chunk then
-- invalid Lua code, check err
return
end
local ok, err = xpcall (chunk, debug.traceback))
if not ok then
-- error was catched, err contains detailed stack info and error description
return
end
-- success