Как запустить скрипт Lua с указанными пользователем параметрами из другого скрипта Lua?
Как запустить скрипт Lua с указанными пользователем параметрами из другого скрипта Lua?
Будет ли работать приведенный ниже код? Где "content_image" - это мое указанное входное изображение (либо сохраненное в файл изображения, либо все еще в скрипте) в сценарий "deepdream.lua", а "output_image" - это выход из скрипта "deepdream.lua", который я хочу использовать в моем сценарии Lua.
dofile("deepdream.lua -content_image content_image -output_image output_image")
Сценарий, который я пытаюсь запустить в другом сценарии Lua, можно найти здесь: https://github.com/bamos/dream-art/blob/master/deepdream.lua
2 ответа
Вы можете использовать loadfile с параметрами в arg:
loadfile("deepdream.lua")({content_image="content_image",output_image="output_image"})
в deepdream.lua:
local arg={...}
local content_image = arg[1].content_image
local output_image = arg[1].output_image
Если вы хотите загрузить и выполнить скрипт, передав ему ряд параметров, вы должны сделать это,... загрузив скрипт и выполнив его, передав ему ряд параметров:
local chunk = loadfile("deepdream.lua")
chunk("-content_image", "content_image", "-output_image", "output_image")
Обратите внимание, что это не будет заполнять args
за аргументы кстати lua.exe
делает. Он будет передавать параметры как переменные параметры, как и любая другая функция Lua. Так что это может испортить ваши глобалы и так далее. Кроме того, в отличие от выполнения lua.exe
, это будет выполнено в текущем процессе, поэтому, если произойдет ошибка, ошибка должна быть обработана вами.
Если хотите, совсем не составит труда написать функцию, которая принимает предоставленную вами строку, использует шаблоны Lua для анализа параметров и т. Д., А затем загружает скрипт с этими параметрами.
Если вы хотите выполнить скрипт точно так же, как если бы вы использовали lua.exe
на этом, то вы бы просто использовать os.execute
:
os.execute("lua.exe deepdream.lua -content_image content_image -output_image output_image")