从bash调用lua函数
我有一个lua脚本,名为“program.lua”。 我以“lua/path/to/program.lua”启动此脚本,并获得脚本提供的特定CLI:从bash调用lua函数,bash,lua,pipe,Bash,Lua,Pipe,我有一个lua脚本,名为“program.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 用法: 救命啊 退出-退出 获
bash$/usr/bin/lua/path/to/program.lua
用法:
救命啊
退出-退出
获取数据吗
脚本>_
在这个脚本中,我有函数“do_get”,如果我从program.lua的CLI调用这个函数,我就得到了正确的输出:
bash$/usr/bin/lua/path/to/program.lua
用法:
救命啊
退出-退出
获取数据吗
脚本>你得到什么
string1
string2
参数1
参数2
脚本>_
这个问题。如何从bash调用函数“do_get”,并在不输入脚本CLI的情况下获得所需的输出
不允许进行脚本编辑
谢谢您可以通过在shell脚本中调用Lua程序来捕获输出,并:
如果这不起作用,请尝试一个可以处理交互提示的工具,如yes()
yes do|get |/usr/bin/lua/path/to/program.lua
或expect
()否。我已经编辑了问题,并提供了无法直接从bash@AndriiK. 好的,我已经更新了我的answer@AndriiK. 你试过运行这个例子吗?@AndriiK。我已经更新了答案,你需要处理交互提示。尝试使用管道或类似于yes
或expect
的工具,expect
将起作用。这实际上不是Lua问题,因为您没有更改Lua脚本。而且,您调用的不是Lua意义上的函数。
lua_output=$(printf "do_get\n\n" | /usr/bin/lua /path/to/program.lua 2>&1)
echo $lua_output