Интерфейс предоставляет функции для работы с шеллом. Например, получение текущей рабочей папки, или алиасов шелла.
shell.getAlias(alias: string): string
Возвращает значение заданного алиаса, если он существует. Если нет — возвращает nil
.
shell.setAlias(alias: string, value: string or nil)
Задает новый алиас, или обновляет существующий. Если в качестве второго параметра задать nil
, алиас будет удален.
Примечание: возможные алиасы не ограничены названиями программ. Вы можете включать также и параметры. К примеру, view
это алиас по умолчанию для edit -r
.
shell.aliases(): function
Возвращает итератор по всем известным алиасам.
shell.getWorkingDirectory(): string
Возвращает путь к текущей рабочей папке. Это алиас для os.getenv("PWD")
.
shell.setWorkingDirectory(dir: string)
Задает рабочую папку для программы. Это версия функции os.setenv("PWD", dir)
.
shell.getPath(): string
Возвращает пути поиска, используемые функцией shell.resolve
. Результатом может быть несколько путей, разделенных знаком :
.
Функция является алиасом к os.getenv("PATH")
.
shell.setPath(value: string)
Задает пути для поиска. Учтите, что эта функция удаляет заданные ранее пути. Чтобы добавить новый путь, используйте shell.setPath(shell.getPath() .. ":/some/path")
.
Функция является алиасом к os.setenv("PATH", value)
.
shell.resolve(path: string[, ext: string]): string
Функция пытается найти заданный путь. Сначала идет поиск в рабочей папке программы, затем по всем путям поиска (см. getPath
/setPath
).
Если определён второй параметр — расширение (в этом случае первый должен содержать только имя), и функция не нашла файла по заданному пути, проверяются файлы с расширением, то есть path .. "." .. ext
.
shell.execute(command: string, env: table[, ...]): boolean ...
Запускает заданную команду. Эта функция вызывает шелл (см. os.getenv("SHELL")
) и вводит в него команду. Параметр env
определяет таблицу окружения, используемую для вызванного шелла и запущенной программы, к примеру, если вы хотите запустить её в отдельном пространстве (sandbox), или избежать «загромождения» пространства имен вызвавшей программы. Дополнительные аргументы передаются в качестве параметров первой программе, запущенной командой.
Возвращаемое значение аналогично pcall
и coroutine.resume
: первое значение будет boolean
определяющий успех или ошибку. В случае ошибки второе значение будет её текстом. В противном случае остальные значения будут теми данными, которые вернет запущенная командой программа.
shell.parse(...): table, table
Вспомогательный метод, предназначенный для парсинга аргументов. Возвращает две таблицы. Первая содержит «простые» аргументы, вторая — «опции». Опции отличаются наличием символа -
перед ними. Опция должна быть длиной в один символ. Несколько символов после -
расцениваются как несколько опций.
К примеру, программа вызывается следующим образом: program -abC -d arg1 arg2
.
Программа вызывает функцию парсинга: local args, options = shell.parse(...)
, где переменная args
становится равна {"arg1", "arg2"}
, а переменная options
— {a=true,b=true,C=true,d=true}
.
shell.running([level: number]): string
Внимание: функция устарела. Используйте process.running
(Process API).