![]() |
Программирование на Lua |
![]() |
Часть I. Язык Глава 1. Начинаем работу |
Автономный интерпретатор (также называемый lua.c
по имени файла исходного кода, или просто lua
по исполняемому файлу) представляет собой небольшую программу, позволяющую прямое использование Lua. В данном резделе представлены его основные опции.
Когда интерпретатор загружает файл, он игнорирует первую строку, если она начинается со "знака числа" ("#
"). Эта особенность позволяет использовать Lua как интерпретатор скриптов в Unix-системах. Если вы предваряете свой код строкой вида
#!/usr/local/bin/lua(при условии, что автономный интерпретатор расположен в
/usr/local/bin
), или
#!/usr/bin/env lua,то вы можете вызывать (исполнять) программу напрямую, без необходимости предварительно запускать интерпретатор Lua.
Запуск lua
:
lua [options] [script [args]]Все параметры являются необязательными. Как мы уже видели, когда
lua
запускается без аргументов,интерпретатор переходит в интерактивный режим.
Ключ -e
позволяет вводить код непосредственно в командную строку. Например,
prompt> lua -e "print(math.sin(12))" --> -0.53657291800043(В системе Unix необходимо задавать двойные кавычки для разделения команд интерпретатора от собственно исполняемого кода.) Как было сказано выше, ключ
-l
загружает файл, а -i
переводит интерпретатор в интерактивный режим после обработки других ключей (опций). Так, например, вызов
prompt> lua -i -l a.lua -e "x = 10"загрузит файл
a.lua
, затем выполнит присваивание x = 10
, и, наконец, предоставит командную строку для ввода.
Всякий раз, когда глобальная переменная _PROMPT
определена, lua
использует это значение как вид приглашения в командной строке. Соответственно, вы можете изменить вид этого приглашения, использовав вызов, подобный следующему:
prompt> lua -i -e "_PROMPT=' lua> '" lua>Подразумевается, что
"prompt"
- приглашение командной строки ОС. В приведенном примере внешние кавычки разделяют команды интерпретатора и исполняемый код, а внутренние одинарные кавычки обрабатываются Lua. Строго говоря, Lua получает для исполнения строку:
_PROMPT=' lua> 'которая присваивает строку
" lua> "
глобальной переменной _PROMPT
.
Перед обработкой аргументов lua
проверяет переменную окружения LUA_INIT
. Если эта переменная определена и содержит @
filename, lua
загружает указанный файл. Если LUA_INIT
определена, но начинается не с "@
", lua
проверяет содержимое на соответствие коду Lua и выполняет его. Эта переменная предоставляет большие возможности по настройке автономного интерпретатора, так как в вашем распоряжении оказывается вся мощь Lua в приложении к задачам конфигурации. Вы можете предварительно загрузить пакеты, изменить вид приглашения и путь, определить ваши собственные функции, переименовать или удалить функции и т.д.
Главный скрипт программы получает аргументы через глобальную переменную arg
. В вызове вида
prompt> lua script a b c
lua
создает таблицу arg
со всеми указанными в командной строке аргументами. Имя скрипта хранится в ячейке 0; его первый аргумент (a
в примере) помещается в ячейку 1 и т.д. Возможны случаи передачи опций в ячейки с отрицательными индексами, что возможно при указании опций до имени скрипта. Например, в результате вызова
prompt> lua -e "sin=math.sin" script a b
lua
сохраняет аргументы в следующем виде:
arg[-3] = "lua" arg[-2] = "-e" arg[-1] = "sin=math.sin" arg[0] = "script" arg[1] = "a" arg[2] = "b"В большинстве случаев скрипт обрабатывает только положительные индексы (
arg[1]
и arg[2]
в примере).
Copyright © 2003-2004 Roberto Ierusalimschy. All rights reserved. | Перевод на русский Artem13 |
![]() |