with start net luabinaries language for example descarga lua version

start - En Lua, ¿hay una función que me diga qué versión actual estoy ejecutando?



luabinaries sourceforge net download (3)

El sujeto lo dice todo. Me gustaría saber si mi intérprete de host está ejecutando Lua 5.2 o 5.1


Hay una variable global _VERSION (una cadena):

print(_VERSION) -- Output Lua 5.2

UPD:
Otros métodos para distinguir entre versiones Lua:

if _ENV then -- Lua 5.2 else -- Lua 5.1 end

UPD2:

--[=[ local version = ''Lua 5.0'' --[[]=] local n = ''8''; repeat n = n*n until n == n*n local t = {''Lua 5.1'', nil, [-1/0] = ''Lua 5.2'', [1/0] = ''Lua 5.3'', [2] = ''LuaJIT''} local version = t[2] or t[#''/z''] or t[n/''-0''] or ''Lua 5.4'' --]] print(version)


Si también necesita el tercer dígito en la versión Lua (no disponible en _VERSION ), debe analizar la salida del comando lua -v en la línea de comandos.

Para las plataformas que admiten io.popen, esta secuencia de comandos hará el truco, pero solo si la secuencia de comandos es ejecutada por el intérprete independiente (no en modo interactivo) .IOW se debe definir la tabla global de arg :

local i_min = 0 while arg[ i_min ] do i_min = i_min - 1 end local lua_exe = arg[ i_min + 1 ] local command = lua_exe .. [[ -v 2>&1]] -- Windows-specific local fh = assert( io.popen( command ) ) local version = fh:read ''*a'' fh:close() -- use version in the code below print( version ) print( version:match ''(%d%.%d%.%d)'' )

Tenga en cuenta que lua -v escribe en stderr en Windows (para Linux no sé), por lo que el command para io.popen (que solo captura stdout ) debe redirigir stderr a stdout y la sintaxis es específica de la plataforma.


_VERSION tiene la versión del intérprete. Compruebe el manual para la referencia.