OpenComputers/Shell API

Материал из Minecraft Wiki
Перейти к: навигация, поиск

Интерфейс предоставляет функции для работы с шеллом. Например, получение текущей рабочей папки, или алиасов шелла.


  • 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).