如何在CygWin中执行.lua文件?

我刚刚安装了CygWin和curl,因为我想做一些无关的事情。但是现在,我想在CygWin中执行一个.lua文件,并且希望结果打印在当前窗口,也就是CygWin窗口中。我希望这就像只是打开CMD,然后做cd <文件所在目录>一样。然后只需执行<filename>.lua,它就会打印结果。那我应该怎么做呢?抱歉,我有点新到Linux、Unix、CLI等,我对bash命令不是很了解。

我尝试使用这个问题中的方法:如何在Cygwin中执行文件? 我只做了./<filename>.lua,然后我得到了

./<filename>.lua:第1行:在"Hello world"周围意外的令牌附近有语法错误
./<filename>.lua:第1行:`print("Hello world")'

文件只有

print("hello world")
点赞
用户2505965
用户2505965

如果您的文件被标记为可执行文件,则运行./<filename>.lua将默认将文件作为_shell脚本_(即 sh, bash, zsh等)来执行。这导致您看到的错误,很容易重现。

bash 中:

$ echo 'print(“Hello world”)'> script.sh && chmod +x script.sh && ./script.sh
./script.sh:第1行:附近的语法错误未预期的token `“Hello world”'
./script.sh:第1行:'print(“Hello world”)'

首先,您需要确保已安装Lua(重新运行Cygwin设置GUI或使用apt-cyg等工具),并且位于您的[$ PATH]中(https:// en.wikipedia.org / wiki / PATH_(variable)#Unix_and_Unix-like)。

然后,不是直接执行文件,而是使用Lua解释器运行它。

$ lua <filename>.lua

或者,使用[shebang](https:// en.wikipedia.org / wiki / Shebang_(Unix))指令来指示 shell 如何执行文件。

2017-02-09 14:16:41