.\" $NetBSD: lua.1,v 1.7.20.1 2023/08/11 16:22:06 martin Exp $ .\" .\" Id: lua.man,v 1.14 2022/09/23 09:06:36 lhf Exp .TH LUA 1 "Date: 2022/09/23 09:06:36 " .SH NAME lua \- Lua interpreter .SH SYNOPSIS .B lua [ .I options ] [ .I script [ .I args ] ] .SH DESCRIPTION .B lua is the standalone Lua interpreter. It loads and executes Lua programs, either in textual source form or in precompiled binary form. (Precompiled binaries are output by .BR luac , the Lua compiler.) .B lua can be used as a batch interpreter and also interactively. .LP After handling the .IR options , the Lua program in file .I script is loaded and executed. The .I args are available to .I script as strings in a global table named .B arg and also as arguments to its main function. When called without arguments, .B lua behaves as .B "lua \-v \-i" if the standard input is a terminal, and as .B "lua \-" otherwise. .LP In interactive mode, .B lua prompts the user, reads lines from the standard input, and executes them as they are read. If the line contains an expression, then the line is evaluated and the result is printed. If a line does not contain a complete statement, then a secondary prompt is displayed and lines are read until a complete statement is formed or a syntax error is found. .LP Before handling command line options and scripts, .B lua checks the contents of the environment variables .B LUA_INIT_5_4 and .BR LUA_INIT , in that order. If the contents are of the form .RI '@ filename ', then .I filename is executed. Otherwise, the contents are assumed to be a Lua statement and is executed. When .B LUA_INIT_5_4 is defined, .B LUA_INIT is ignored. .SH OPTIONS .TP .BI \-e " stat" execute statement .IR stat . .TP .B \-i enter interactive mode after executing .IR script . .TP .BI \-l " mod" require library .I mod into global .IR mod . .TP .BI \-l " g=mod" require library .I mod into global .IR g . .TP .B \-v show version information. .TP .B \-E ignore environment variables. .TP .B \-W turn warnings on. .TP .B \-\- stop handling options. .TP .B \- stop handling options and execute the standard input as a file. .SH ENVIRONMENT VARIABLES The following environment variables affect the execution of .BR lua . When defined, the version-specific variants take priority and the version-neutral variants are ignored. .TP .B LUA_INIT, LUA_INIT_5_4 Code to be executed before command line options and scripts. .TP .B LUA_PATH, LUA_PATH_5_4 Initial value of package.cpath, the path used by require to search for Lua loaders. .TP .B LUA_CPATH, LUA_CPATH_5_4 Initial value of package.cpath, the path used by require to search for C loaders. .SH EXIT STATUS If a script calls os.exit, then .B lua exits with the given exit status. Otherwise, .B lua exits with EXIT_SUCCESS (0 on POSIX systems) if there were no errors and with EXIT_FAILURE (1 on POSIX systems) if there were errors. Errors raised in interactive mode do not cause exits. .SH DIAGNOSTICS Error messages should be self explanatory. .SH "SEE ALSO" .BR luac (1) .br The documentation at lua.org, especially section 7 of the reference manual. .SH AUTHORS R. Ierusalimschy, L. H. de Figueiredo, W. Celes .\" EOF