run

run ejecuta flujos .lil con variables, condiciones, resultados capturados, scripts anidados, previsualización y archivos empaquetados por la misma ruta de comandos que el terminal interactivo. No invoca una shell del sistema operativo.

AutomatizaciónVersión 1.2.4Estable
lil-terminal

Resumen

Guarda las tareas repetidas en un archivo .lil; run las ejecuta en orden. Revisa primero con -n.

La automatización permanece dentro de lil-terminal

Cada instrucción se resuelve como un comando normal de lil-terminal. Las dependencias deben instalarse antes, @command no se usa dentro de los flujos, -n muestra los comandos expandidos sin ejecutarlos y -x es obligatorio para comandos privilegiados no interactivos como php o ses.

Sintaxis

lil-terminal
run <file.lil|[script]> [-n|-v|-k|-x] · run -p <source.lil> [target.lil]

Referencia

run task.lil

ejecutar un script .lil normal o empaquetado

run [md backup | copy public backup/public]

ejecutar un script en línea; un | sin comillas separa instrucciones

run <script> -n

validar y mostrar los comandos expandidos sin ejecutarlos

run <script> -v

mostrar toda la salida de los comandos

run <script> -k

continuar tras los errores; de forma predeterminada se detiene en el primero

run <script> -x

permitir comandos privilegiados no interactivos como php y ses

run -p <source.lil> [target.lil]

crear un script empaquetado protegido con suma de comprobación

lil <script>

alias de run

plain .lil

texto UTF-8 con una instrucción por línea

packed .lil

cabecera @LIL1 con SHA-256 y datos DEFLATE

setup.lil

ejecutar una vez tras la autorización y eliminar después del éxito

autoload.lil

ejecutar una vez por sesión autorizada

@<command>

la instalación automática es solo interactiva y se rechaza dentro de los scripts

#lil file

script lineal del core formado solo por comandos normales; se ejecuta por ruta o con <

run workflow

usar run cuando hagan falta variables, condiciones, anidación, capture u otra lógica de flujo

En la práctica

¿Repites los mismos pasos de mantenimiento? Guárdalos en un archivo de texto .lil y ejecútalos con run. Las instrucciones se realizan en orden mediante lil-terminal, sin invocar la shell del sistema operativo.

Empieza con run sandbox/scripts/workflow.lil -n para revisar el guion sin ejecutarlo. Después elimina -n. Para tareas breves puedes escribir run [pwd | pwd]; aquí | separa instrucciones.

Cada línea contiene una instrucción. set guarda un valor, capture recoge la salida de un comando, if/else decide qué hacer y run invoca otro archivo. En el ejemplo, if file ${source} comprueba si existe el archivo.

-v muestra todos los resultados. Normalmente se detiene al primer fallo; -k permite continuar, pero el resultado final sigue siendo Stopped si hubo errores. La vista previa no garantiza que la ejecución posterior tenga éxito.

Un archivo que comienza con #lil puede ejecutarse directamente desde Base Core como una secuencia simple. Para variables, condiciones y scripts anidados se utiliza run. Minimum está pensado para un único argumento de archivo. Una forma breve sin espacios, como run [pwd], también puede funcionar; varias instrucciones en línea y las opciones avanzadas requieren Base.

setup.lil junto a lil.php se ejecuta tras autorizarse y solo se elimina si todo termina bien; autoload.lil se ejecuta una vez por sesión autorizada. -p empaqueta con SHA-256 y DEFLATE en @LIL1, pero **no cifra** los datos.

Los scripts funcionan con los permisos del proceso PHP. Se prohíben comandos interactivos y @install; php/ses requieren -x. Límites: 256 KiB de texto, 384 KiB empaquetados, 1000 instrucciones, 10 niveles y 60 segundos. Los cambios realizados no se deshacen automáticamente.

Detalles

El texto normal se limita a 256 KiB, la entrada empaquetada a 384 KiB, los scripts a 1000 instrucciones, 10 niveles y 60 segundos. SHA-256 y DEFLATE protegen la integridad, pero no cifran el contenido.

Seguridad

Los scripts se ejecutan con los permisos del proceso PHP actual. Los comandos interactivos están bloqueados y php y ses requieren -x. No ejecute scripts no revisados.

Instalación automática

La comodidad @command pertenece al núcleo interactivo, no al lenguaje de automatización. Un script .lil que intente iniciar un comando con @ se rechaza. Instala explícitamente las dependencias del script antes de automatizar para que el flujo no cambie de forma implícita el conjunto de módulos ejecutables.

Scripts lineales del core y Run

Un archivo que comienza por #lil es deliberadamente más sencillo que un flujo de Run: cada línea que no sea comentario es un comando normal del terminal, los separadores | de nivel superior se ejecutan de izquierda a derecha y el proceso se detiene ante el primer fallo. Se ejecuta directamente por ruta o con < file.lil. Usa run cuando necesites variables, condiciones, scripts anidados, capture, dry-run u otras funciones de flujo.

Un flujo, incluidos los scripts anidados, admite hasta 1000 instrucciones no comentadas. En modo -n un error muestra Stopped, no Checked; la vista previa no ejecuta comandos.

Vista interactiva del sandbox

Ejecuta los ejemplos preparados directamente en la página. Los resultados están predefinidos y se muestran en el navegador; no se ejecuta ningún comando de terminal en el servidor.

Ejecutar un script .lil normal o empaquetado

Instalar y administrar

Instala la versión compatible actual. Elige Base para el conjunto completo de funciones o Minimum para el paquete reducido; usa upgrade para actualizar un módulo ya instalado.

Base y Minimum son dos paquetes de la misma versión actual del módulo.

Paquete Base

Instala el paquete completo con referencia local y todos los modos publicados.

install run
Paquete Minimum

Instalar el paquete reducido. No incluye la referencia local; help <cmd> -i abre la referencia actual del servidor.

install run -m
Versión pública exacta

Instalar exactamente esta versión publicada.

install run -v 1.2.4
Comprobar o actualizar

upgrade comprueba la compatibilidad y sustituye el bloque solo cuando hace falta.

upgrade run
Eliminar módulo

Elimina el bloque de extensión sin tocar el núcleo ni otros módulos.

install run -u

Ejemplos

Los ejemplos se pueden copiar, pero el sitio no los ejecuta. Revisa rutas, permisos y opciones destructivas.

Ejecutar un script .lil normal o empaquetado
run sandbox/scripts/workflow.lil
001 + pwd
002 + pwd
Completed: 2
Mostrar toda la salida de los comandos
run sandbox/scripts/workflow.lil -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
Validar y mostrar los comandos expandidos sin ejecutarlos
run sandbox/scripts/workflow.lil -n
001 · pwd
002 · pwd
Checked: 2
Validar y mostrar los comandos expandidos sin ejecutarlos
run sandbox/scripts/workflow.lil -n -v
001 · pwd
002 · pwd
Checked: 2
Alias de run
lil sandbox/scripts/workflow.lil
001 + pwd
002 + pwd
Completed: 2

lil es el alias corto de run; los flujos .lil guardados y la automatización pegada usan la misma ruta de ejecución de comandos.

Ejecutar un script en línea; un | sin comillas separa instrucciones
run [pwd | pwd]
001 + pwd
002 + pwd
Completed: 2
Run · name
run [set name demo | if eq demo demo | pwd | else | stop mismatch | end]
001 + pwd
Completed: 1
Run · file
run [if file sandbox/data/sample.txt | pwd | end]
001 + pwd
Completed: 1
Run · not
run [if not exists sandbox/missing.txt | pwd | end]
001 + pwd
Completed: 1
Run · location
run [capture location pwd | pwd] -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
Usar run cuando hagan falta variables, condiciones, anidación, capture u otra lógica de flujo
run sandbox/scripts/nested.lil -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
Ejecutar un script .lil normal o empaquetado
run [upload | pwd]
001 – upload
    Command is not allowed in scripts
Stopped: 1
Continuar tras los errores; de forma predeterminada se detiene en el primero
run [upload | pwd] -k
001 – upload
    Command is not allowed in scripts
002 + pwd
Stopped: 2
Run · 14
run [stop maintenance]
Line 001 – maintenance
Stopped: 0
Permitir comandos privilegiados no interactivos como php y ses
run [pwd | php -v]
001 + pwd
002 – php -v
    Command is not allowed in scripts
Stopped: 2
Permitir comandos privilegiados no interactivos como php y ses
run [pwd | php -v] -x -v
001 + pwd
    sandbox
002 + php -v
    PHP 8.4.24
Completed: 2
Permitir comandos privilegiados no interactivos como php y ses
run sandbox/scripts/privileged.lil
001 – php -v
    Command is not allowed in scripts
Stopped: 1
Permitir comandos privilegiados no interactivos como php y ses
run sandbox/scripts/privileged.lil -x -v
001 + php -v
    PHP 8.4.24
Completed: 1
Validar y mostrar los comandos expandidos sin ejecutarlos
run sandbox/scripts/invalid.lil -n
001 · pwd
Line 003 – Missing end
Stopped: 1
Usar run cuando hagan falta variables, condiciones, anidación, capture u otra lógica de flujo
run sandbox/scripts/recursive.lil
Recursive script detected
Stopped: 0
Ejecutar un script .lil normal o empaquetado
run sandbox/scripts/blocked.lil
001 – @install find
    Automatic installation is not allowed in scripts
Stopped: 1
Continuar tras los errores; de forma predeterminada se detiene en el primero
run sandbox/scripts/recover.lil -k
001 – upload
    Command is not allowed in scripts
002 + pwd
Stopped: 2
Crear un script empaquetado protegido con suma de comprobación
run -p sandbox/scripts/workflow.lil sandbox/scripts/workflow.export.lil
Packed workflow.lil > sandbox/scripts/workflow.export.lil
182 B > 256 B
Ejecutar un script .lil normal o empaquetado
run sandbox/scripts/workflow.packed.lil
001 + pwd
002 + pwd
Completed: 2
Validar y mostrar los comandos expandidos sin ejecutarlos
run sandbox/scripts/workflow.packed.lil -n
001 · pwd
002 · pwd
Checked: 2
Ejecutar un script .lil normal o empaquetado
run [@install find]
001 – @install find
    Automatic installation is not allowed in scripts
Stopped: 1
Ejecutar un script .lil normal o empaquetado
run [upload]
001 – upload
    Command is not allowed in scripts
Stopped: 1
Ejecutar un script .lil normal o empaquetado
run sandbox/scripts/missing.lil
Script file not found
Ejecutar un script .lil normal o empaquetado
run sandbox/data/sample.txt
Script must use the .lil extension
Ejecutar un script .lil normal o empaquetado
run sandbox/scripts/workflow.lil -z
Unknown run option: -z
Ejecutar un script en línea; un | sin comillas separa instrucciones
run [pwd
Inline script is missing ]
Ejecutar un script .lil normal o empaquetado
run
?

Archivo usado en este ejemplo: sandbox/scripts/demo.lil

El ejemplo usa un archivo o directorio del espacio protegido de documentación /sandbox/.

# lil-sandbox workflow
pwd
dir 1 sandbox
echo sandbox/data/sample.txt

Documentación relacionada

Versión pública actual

v1.2.42026-11-01

Refinamiento de producción

Versión estable actual de run. run ejecuta flujos `.