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



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