MySQL- Руководство разработчика

Lua в автономном режиме


Хотя Lua был разработан как язык расширений, чтобы быть вложенным в ведущую программу на C, это часто используется как автономный язык. Интерпретатор для Lua, как автономного языка, называется просто lua. Эта программа может быть вызвана с любой последовательностью следующих параметров:

-sNUM Устанавливает размер стека в NUM (если используется, должно быть первой опцией). - Выполняет stdin как файл. -c Вызывает lua_close после обработки всех параметров. -e \rmstat Выполняет строку stat. -f filename Выполняет файл filename с параметрами для таблицы arg. -i Вводит интерактивный режим с подсказкой. -q Вводит интерактивный режим без подсказки. -v Информация о версии пакета. var=value Устанавливает глобальную переменную var в строку "value". filename Выполняет файл filename.

Когда вызван без параметров, lua ведет себя как lua -v -i, когда stdin представляет собой терминал, или аналогично lua - в противном случае.

Все параметры обработаны по порядку, за исключением -c. Например, обращение, подобное: $ lua -i a=test prog.lua

Сначала взаимодействует с пользователем до EOF в stdin, затем установит a в "test" и в заключение выполнит файл prog.lua. Здесь под $ понимается подсказка оболочки. Ваша подсказка может быть иной.

Когда используется опция -f filename, все параметры в командной строке переданы программе Lua filename в таблице, названной arg. В этой таблице поле n получает индекс последнего параметра, а поле 0 получает "filename". Например, $ lua a.lua -f b.lua t1 t3

интерпретатор сначала выполняет файл a.lua, затем создает таблицу: arg = {"t1", "t3"; n = 2, [0] = "b.lua"}

а в заключение выполняет файл b.lua. Автономный интерпретатор также обеспечивает функцию getargs, которая может использоваться, чтобы обратиться ко всем параметрам командной строки. Например, если Вы вызываете Lua строкой: $ lua -c a b

то обращение к getargs в a или в b возвратит такую таблицу: {[0] = "lua", [1] = "-c", [2] = "a", [3] = "b", n = 3}

В интерактивном режиме может быть написана многострочная инструкция. Для этого надо заканчивать промежуточные строки наклонной чертой влево (\). Если глобальная переменная _PROMPT определена как строка, то ее значение используется как подсказка. Следовательно, подсказка может быть изменена непосредственно в командной строке. Например: $ lua _PROMPT='myprompt> ' -i

Или в программе Lua, назначая новое значение переменной _PROMPT.

В Unix Lua-скрипты могут быть переделаны в выполнимые программы, используя chmod +x и форму #! как в #!/usr/local/bin/lua или #!/usr/local/bin/lua -f, чтобы получить другие параметры.



Содержание раздела