The given options are handled in order and then the Lua program in file script is loaded and executed. The given args are available to script as strings in a global table named arg . If no options or arguments are given, then "-v -i" is assumed when the standard input is a terminal; otherwise, "-" is assumed.
In interactive mode, lua prompts the user, reads lines from the standard input, and executes them as they are read. If the line contains an expression or list of expressions, then the line is evaluated and the results are 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.
At the very start, before even handling the command line, lua checks the contents of the environment variables LUA_INIT_5_3 or LUA_INIT , in that order. If the contents is of the form '@ filename ', then filename is executed. Otherwise, the string is assumed to be a Lua statement and is executed.
-e " stat" execute statement stat .
-i enter interactive mode after executing script .
-l " name" execute the equivalent of name =require(' name ') before executing script .
-v show version information.
-E ignore environment variables.
-- stop handling options.
- stop handling options and execute the standard input as a file.
The documentation at lua.org, especially section 7 of the reference manual.