从 bash 调用 lua 函数

我有一个名为"program.lua"的lua脚本。 我使用'lua /path/to/program.lua'启动此脚本,并获得由脚本提供的特定CLI:

bash $ /usr/bin/lua /path/to/program.lua
使用方法:
 帮助    - 帮助
 退出    - 退出
做得到-得到数据
脚本> _

在这个脚本中,我有一个名为'do_get'的函数,如果我从program.lua的CLI中调用此函数,我将获得正确的输出:

bash $ /usr/bin/lua /path/to/program.lua
使用方法:
 帮助    - 帮助
 退出    - 退出
做得到-得到数据
脚本> do_get
string1
string2
param1
param2

脚本> _

问题。我如何从bash中调用函数“do_get”并获得所需的输出,而不必进入脚本的CLI?

脚本编辑被禁止。

谢谢

点赞
用户1611108
用户1611108

你可以通过在 shell 脚本中调用 Lua 程序并将输出导入到变量中来捕获输出:

lua_output=$(printf "do_get\n\n" | /usr/bin/lua /path/to/program.lua 2>&1)

echo $lua_output

如果这样不起作用,请尝试使用能够处理交互提示的工具,比如 yeshttps://man7.org/linux/man-pages/man1/yes.1.html) yes do_get | /usr/bin/lua /path/to/program.lua 或者 expecthttps://man7.org/linux/man-pages/man1/expect.1.html)。

2020-11-26 13:28:33