Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何在CygWin中执行.lua文件?_Windows_Lua_Cygwin - Fatal编程技术网

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

Windows 如何在CygWin中执行.lua文件?,windows,lua,cygwin,Windows,Lua,Cygwin,我刚刚安装了CygWin和curl,因为我想做一些无关的事情。但是现在,我想在CygWin中执行一个.lua文件,并希望在当前窗口CygWin窗口上打印结果。我希望它类似于打开CMD,然后执行cd。然后只需执行.lua,它就会打印结果。那我该怎么做呢?很抱歉,我对Linux、Unix、CLI等有点陌生,对bash命令了解不多 我尝试从这里使用该方法: 我刚刚做了/.lua,我得到了 ./<filename>.lua: line 1: syntax error near unexpec

我刚刚安装了CygWin和curl,因为我想做一些无关的事情。但是现在,我想在CygWin中执行一个.lua文件,并希望在当前窗口CygWin窗口上打印结果。我希望它类似于打开CMD,然后执行
cd
。然后只需执行
.lua
,它就会打印结果。那我该怎么做呢?很抱歉,我对Linux、Unix、CLI等有点陌生,对bash命令了解不多

我尝试从这里使用该方法: 我刚刚做了
/.lua
,我得到了

./<filename>.lua: line 1: syntax error near unexpected token `"Hello world"'
./<filename>.lua: line 1: `print("Hello world")'

如果文件标记为可执行文件,则运行
/.lua
将默认以shell脚本的形式执行文件(即
sh
bash
zsh
等)。这会导致您看到的错误,很容易重新创建

bash
中:

$ echo 'print("Hello world")' > script.sh && chmod +x script.sh && ./script.sh
./script.sh: line 1: syntax error near unexpected token `"Hello world"'
./script.sh: line 1: `print("Hello world")'
您需要做的第一件事是确保安装了Lua(重新运行Cygwin安装GUI,或使用类似于
apt cyg
)的工具),并且Lua位于您的计算机中

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

$ lua <filename>.lua
$lua.lua


或者,使用指令指示shell如何执行文件。

是否安装了lua包
cygcheck-clua
从cygwin terminalcheckout文件编码中执行此操作。我执行了
cygcheck-c
操作,但lua未在此处列出。如果我做了
cygcheck-clua
,它只会说
包版本状态
,但没有列出lua。我不知道我需要为cygwin64安装lua?哦,对不起。我本来会早点回复的,但是我整天都在忙着做一些事情,我完全忘记了这件事@莫特斯什么?哇,我都不知道你用那玩意儿干了什么。再说一次,我对Linux、Unix、CLI等都不是很在行。不管怎样,我照你说的做了。我搜索了apt cyg,安装了它。但我实际上是用Cygwin安装GUI安装了
lua5.1
。所以我继续做了
lua-5.1.lua
,然后打印出来。谢谢你们帮助我这样的傻瓜。@rumpled105
echo
将其参数打印到标准输出
将输出重定向到
script.sh
文件,覆盖其内容<代码>&如果上一个命令成功执行,则执行下一个命令(返回状态为
0
chmod+x
将文件标记为可执行文件
/script.sh
运行该文件。通过在shell中玩游戏并阅读一些文档,您将及时了解这些内容。如果答案有帮助,一定要接受,这样别人就会知道你的问题已经解决了。干杯。我建议使用
#/usr/bin/lua
shebang行是执行此操作的首选方式。@KeithThompson
#/usr/bin/env lua
,一般情况下,否?在您的路径中安装Lua解释器仍然是正常使用的理想选择。@Oka:在Cygwin下,除非您手动安装,否则Lua解释器将是
/usr/bin/Lua
。虽然它在Cygwin上,但不能保证
env
/usr/bin/env
。我已经讨论了
#的利弊/usr/bin/env
hack。
$ lua <filename>.lua