如何在linux上执行由luac生成的lua字节码

我有一个简单的lua源代码hello.lua

print('Hello Lua') 

我在RedHat Linux机器上使用Lua5.3.4将这个文件编译成字节码,如下所示:

 luac -o hello.luac hello.lua chmod +x hello.luac ./hello.luac bash: ./hello.luac: cannot execute binary file 

我想这个架构应该没问题。 我不知道什么是错的。

预编译的Lua程序的运行方式与源代码完全相同:

 lua hello.luac 

正如@lhf在他的回答中所述,Lua字节码是使用Lua解释器执行的,正如手册所示:

为了允许在Unix系统中使用Lua作为脚本解释器,独立解释器在以#开头的情况下跳过块的第一行。 因此,可以使用chmod +x#!来使Lua脚本变成可执行程序#! 形成。

添加一个shebang作为脚本的第一行:

 #!/usr/bin/env lua print('Hello Lua')