lua - dofile,如何从lua中填充stdin?

dofile ([filename])

打开指定的文件并执行内部 Lua 块。当不带参数调用时,dofile 执行标准输入(stdin)中的内容。返回块返回的所有值。如果发生错误,dofile 将错误传播给其调用者(即,dofile 不运行在保护模式下)。

如何在 Lua 中填充 stdin,以便在不带参数的情况下调用?

点赞
用户1009479
用户1009479

以下是一个例子:

-bash-4.0$ ./lua
Lua 5.3.0 (alpha)  版权所有 (C) 1994-2014 Lua.org,PUC-Rio
> dofile()
a = 3; print(a)
3
>

在输入 a = 3; print(a) 后,我按下了在 Unix 中代表 EOFCtrl + Ddofile() 加载输入并执行它。

2014-12-11 09:04:38
用户234175
用户234175

如果你在命令行中运行Lua脚本或交互模式的Lua解释器,调用dofile()将只从标准输入中获取输入。你将看到一个闪烁的光标在shell中,你可以输入要运行的Lua代码。

请注意,以这种方式运行dofile是一种阻塞调用,这意味着您的脚本或Lua解释器的执行流程将暂停,直到它读取结束符。通常,这意味着您必须在结尾处输入“Ctrl + Z”(Windows)或“Ctrl + D”(\ *nix Bash Shell)。

2014-12-11 09:05:38