Установить полный пакет с локальной справкой и всеми опубликованными режимами.
install runrun.lil-сценарии с переменными, условиями, захватом результата, вложенными сценариями, предварительной проверкой и упаковкой через тот же механизм команд, что и обычный терминал. Системная оболочка не вызывается.
Повторяющиеся операции удобно записать в .lil-файл и запускать через
Каждая строка выполняется как обычная команда lil-terminal. Зависимости устанавливаются заранее, @command внутри сценария не используется, -n показывает развёрнутые команды без выполнения, а -x требуется для привилегированных неинтерактивных команд вроде
run <file.lil|[script]> [-n|-v|-k|-x] · run -p <source.lil> [target.lil]run task.lilвыполнить обычный или упакованный .lil-сценарий
run [md backup | copy public backup/public]выполнить встроенный сценарий; вертикальная черта без кавычек разделяет команды
run <script> -nпроверить и показать развёрнутые команды без выполнения
run <script> -vпоказать полный вывод команд
run <script> -kпродолжать после ошибок; по умолчанию выполнение останавливается при первой ошибке
run <script> -xразрешить привилегированные неинтерактивные команды, например php и ses
run -p <source.lil> [target.lil]создать упакованный сценарий с контрольной суммой
lil <script>псевдоним для
plain .lilтекст UTF-8: одна команда в строке
packed .lilзаголовок @LIL1, SHA-256 и данные DEFLATE
setup.lilвыполнить один раз после авторизации и удалить после успеха
autoload.lilвыполнить один раз за авторизованную сессию
@<command>автоматическая установка доступна только интерактивно и отклоняется внутри сценариев
#lil fileлинейный сценарий ядра только из обычных команд терминала; запуск по пути или через <
run workflowиспользовать
Повторяешь одни и те же действия с файлами? Сохрани команды в текстовый .lil-файл и запускай их через
Начни с | разделяет команды внутри сценария.
В файле каждая команда занимает свою строку. set сохраняет переменную, capture запоминает текст результата, if и else выбирают действия, workflow.lil команда if file ${source} проверяет наличие файла, прежде чем продолжать.
-v показывает вывод всех операций. По умолчанию выполнение прекращается при первой ошибке; -k продолжает следующие шаги, но общий результат остаётся Stopped, если была ошибка. Пробный запуск -n не гарантирует, что реальный запуск позже завершится успешно.
Простой файл с первой строкой #lil запускается встроенным механизмом Base Core: только команды по порядку. Полный
setup.lil рядом с lil.php выполняется после авторизации и удаляется только при успехе; autoload.lil выполняется раз за авторизованную сессию. -p упаковывает сценарий в формат @LIL1 с SHA-256 и DEFLATE, но **не шифрует** его.
Сценарии работают с правами текущего PHP-пользователя. Интерактивные действия и
Обычный текст ограничен 256 КиБ, упакованный вход — 384 КиБ, сценарий — 1000 командами, вложенность — 10 уровнями, время — 60 секундами. Упаковка использует SHA-256 и DEFLATE для целостности, но не является шифрованием.
Сценарии выполняются с правами текущего PHP-процесса. Интерактивные команды запрещены, а php и ses доступны только с явным -x. Не запускайте непроверенные сценарии.
Сокращение @command относится к интерактивному ядру, а не к языку автоматизации. .lil-сценарий, пытающийся начать команду с @, отклоняется. Зависимости сценария следует устанавливать явно до запуска автоматизации, чтобы рабочий процесс не менял набор исполняемых модулей неявно.
Файл, начинающийся с #lil, намеренно проще сценария | выполняются слева направо, а первая ошибка останавливает последовательность. Такой файл запускается непосредственно по пути или через < file.lil. Используйте
Во всём сценарии, включая вложенные .lil, допускается не более 1000 непустых строк-команд и инструкций. При ошибке проверки -n выводит Stopped, а не Checked; предварительная проверка ничего не исполняет.
Запускайте подготовленные примеры прямо на странице. Результат заранее сформирован и показывается в браузере; команды терминала на сервере не выполняются.
Устанавливайте актуальную совместимую версию. Для полного набора возможностей выбирайте Base, для сокращённого — Minimum; уже установленный модуль обновляет команда upgrade.
Base и Minimum — два пакета одного текущего релиза модуля, а не разные версии команды.
Установить полный пакет с локальной справкой и всеми опубликованными режимами.
install runУстановить сокращённый пакет без локальной справки;
install run -mУстановить именно эту опубликованную версию.
install run -v 1.2.4Поручить upgrade проверить совместимость и заменить установленный блок только при необходимости.
upgrade runУдалить блок расширения, не затрагивая ядро и остальные модули.
install run -uПримеры можно копировать, но сайт их не выполняет. Перед запуском на реальном проекте проверьте пути, права и разрушающие флаги.
run sandbox/scripts/workflow.lil001 + pwd
002 + pwd
Completed: 2run sandbox/scripts/workflow.lil -v001 + pwd
sandbox
002 + pwd
sandbox
Completed: 2run sandbox/scripts/workflow.lil -n001 · pwd
002 · pwd
Checked: 2run sandbox/scripts/workflow.lil -n -v001 · pwd
002 · pwd
Checked: 2lil sandbox/scripts/workflow.lil001 + pwd
002 + pwd
Completed: 2.lil-сценарии и вставленная автоматизация используют один и тот же путь выполнения команд.
run [pwd | pwd]001 + pwd
002 + pwd
Completed: 2run [set name demo | if eq demo demo | pwd | else | stop mismatch | end]001 + pwd
Completed: 1run [if file sandbox/data/sample.txt | pwd | end]001 + pwd
Completed: 1run [if not exists sandbox/missing.txt | pwd | end]001 + pwd
Completed: 1run [capture location pwd | pwd] -v001 + pwd
sandbox
002 + pwd
sandbox
Completed: 2run sandbox/scripts/nested.lil -v001 + pwd
sandbox
002 + pwd
sandbox
Completed: 2run [upload | pwd]001 – upload
Command is not allowed in scripts
Stopped: 1run [upload | pwd] -k001 – upload
Command is not allowed in scripts
002 + pwd
Stopped: 2run [stop maintenance]Line 001 – maintenance
Stopped: 0run [pwd | php -v]001 + pwd
002 – php -v
Command is not allowed in scripts
Stopped: 2run [pwd | php -v] -x -v001 + pwd
sandbox
002 + php -v
PHP 8.4.24
Completed: 2run sandbox/scripts/privileged.lil001 – php -v
Command is not allowed in scripts
Stopped: 1run sandbox/scripts/privileged.lil -x -v001 + php -v
PHP 8.4.24
Completed: 1run sandbox/scripts/invalid.lil -n001 · pwd
Line 003 – Missing end
Stopped: 1run sandbox/scripts/recursive.lilRecursive script detected
Stopped: 0run sandbox/scripts/blocked.lil001 – @install find
Automatic installation is not allowed in scripts
Stopped: 1run sandbox/scripts/recover.lil -k001 – upload
Command is not allowed in scripts
002 + pwd
Stopped: 2run -p sandbox/scripts/workflow.lil sandbox/scripts/workflow.export.lilPacked workflow.lil > sandbox/scripts/workflow.export.lil
182 B > 256 Brun sandbox/scripts/workflow.packed.lil001 + pwd
002 + pwd
Completed: 2run sandbox/scripts/workflow.packed.lil -n001 · pwd
002 · pwd
Checked: 2run [@install find]001 – @install find
Automatic installation is not allowed in scripts
Stopped: 1run [upload]001 – upload
Command is not allowed in scripts
Stopped: 1run sandbox/scripts/missing.lilScript file not foundrun sandbox/data/sample.txtScript must use the .lil extensionrun sandbox/scripts/workflow.lil -zUnknown run option: -zrun [pwdInline script is missing ]run?sandbox/scripts/demo.lilПример использует файл или каталог из защищённой учебной папки /sandbox/.
# lil-sandbox workflow
pwd
dir 1 sandbox
echo sandbox/data/sample.txt
Актуальная стабильная версия