run

run führt .lil-Abläufe mit Variablen, Bedingungen, erfassten Ergebnissen, verschachtelten Skripten, Vorschau und gepackten Dateien über denselben Befehlsweg wie das interaktive Terminal aus. Eine Betriebssystem-Shell wird nicht aufgerufen.

AutomatisierungVersion 1.2.4Stabil
lil-terminal

Überblick

Wiederkehrende Schritte gehören in eine .lil-Datei. run führt sie nacheinander aus; mit -n zuerst prüfen.

Automatisierung bleibt innerhalb von lil-terminal

Jede ausführbare Anweisung wird wie ein normaler lil-terminal-Befehl aufgelöst. Abhängigkeiten müssen vorher installiert sein, @command wird in Abläufen nicht verwendet, -n zeigt die expandierten Befehle ohne Ausführung und -x ist für privilegierte nichtinteraktive Befehle wie php oder ses erforderlich.

Syntax

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

Referenz

run task.lil

ein normales oder gepacktes .lil-Skript ausführen

run [md backup | copy public backup/public]

ein Inline-Skript ausführen; ein nicht zitiertes | trennt Anweisungen

run <script> -n

erweiterte Befehle prüfen und anzeigen, ohne sie auszuführen

run <script> -v

vollständige Befehlsausgabe anzeigen

run <script> -k

nach Fehlern fortfahren; standardmäßig beim ersten Fehler stoppen

run <script> -x

privilegierte nichtinteraktive Befehle wie php und ses erlauben

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

ein prüfsummengeschütztes gepacktes Skript erstellen

lil <script>

Alias für run

plain .lil

UTF-8-Text mit einer Anweisung pro Zeile

packed .lil

@LIL1-Kopf mit SHA-256 und DEFLATE-Daten

setup.lil

einmal nach der Anmeldung ausführen und nach Erfolg löschen

autoload.lil

einmal pro autorisierter Sitzung ausführen

@<command>

automatische Installation ist nur interaktiv verfügbar und wird in Skripten abgelehnt

#lil file

lineares Core-Skript nur aus gewöhnlichen Terminalbefehlen; per Pfad oder mit < starten

run workflow

run verwenden, wenn Variablen, Bedingungen, Verschachtelung, Capture oder andere Ablaufsteuerung nötig sind

In der Praxis

Wiederholst du regelmäßig dieselben Wartungsschritte? Speichere sie in einer .lil-Textdatei und starte sie mit run. Die Anweisungen laufen nacheinander über lil-terminal, nicht über die Shell des Betriebssystems.

Prüfe zuerst mit run sandbox/scripts/workflow.lil -n, ohne etwas auszuführen. Entferne danach -n. Für kurze Aufgaben eignet sich run [pwd | pwd]; das | trennt hier die Anweisungen.

Eine Zeile enthält jeweils eine Anweisung. set speichert Werte, capture übernimmt die Befehlsausgabe, if/else wählen einen Zweig, und run startet weitere Skripte. if file ${source} prüft im Beispiel, ob die Datei existiert.

-v zeigt alle Ausgaben. Standardmäßig stoppt die Ausführung beim ersten Fehler. -k führt spätere Schritte dennoch aus, meldet das gesamte Skript aber weiterhin als Stopped. Eine Vorschau garantiert keinen späteren Erfolg.

Eine Datei mit #lil in der ersten Zeile kann Base Core als einfache Befehlsfolge ausführen. Für Variablen, Bedingungen und verschachtelte Abläufe benötigst du run. Minimum ist für ein einzelnes Dateiargument vorgesehen. Ein kurzer Ausdruck ohne Leerzeichen wie run [pwd] kann ebenfalls funktionieren; mehrere Inline-Anweisungen und erweiterte Optionen benötigen Base.

setup.lil neben lil.php läuft nach der Anmeldung und wird nur nach Erfolg gelöscht; autoload.lil läuft einmal pro autorisierter Sitzung. -p packt mit SHA-256 und DEFLATE in @LIL1, **verschlüsselt** aber nicht.

Skripte verwenden die Rechte des laufenden PHP-Prozesses. Interaktive Befehle und @install sind verboten; php/ses benötigen ausdrücklich -x. Grenzen: 256 KiB Klartext, 384 KiB gepackt, 1000 Anweisungen, 10 Ebenen, 60 Sekunden. Bereits ausgeführte Dateiänderungen werden nicht zurückgesetzt.

Details

Klartext ist auf 256 KiB, gepackte Eingaben auf 384 KiB, Skripte auf 1000 Anweisungen, 10 Verschachtelungsebenen und 60 Sekunden begrenzt. SHA-256 und DEFLATE schützen die Integrität, stellen aber keine Verschlüsselung dar.

Sicherheit

Skripte laufen mit den Rechten des aktuellen PHP-Prozesses. Interaktive Befehle sind gesperrt; php und ses erfordern ausdrücklich -x. Führen Sie keine ungeprüften Skripte aus.

Automatische Installation

Die Kurzform @command gehört zum interaktiven Core und nicht zur Automatisierungssprache. Beginnt ein Befehl in einem .lil-Skript mit @, wird er abgelehnt. Skriptabhängigkeiten sollten vor der Automatisierung ausdrücklich installiert werden, damit ein Workflow seinen ausführbaren Modulbestand nicht still verändert.

Lineare Core-Skripte und Run

Eine Datei mit #lil als erster Zeile ist absichtlich einfacher als ein Run-Workflow: Jede nicht kommentierte Zeile ist ein gewöhnlicher Terminalbefehl, | auf oberster Ebene wird von links nach rechts abgearbeitet, und beim ersten Fehler wird gestoppt. Die Datei wird direkt über den Pfad oder mit < file.lil gestartet. run ist die richtige Wahl für Variablen, Bedingungen, verschachtelte Skripte, Capture, Dry-Run oder andere Ablaufsteuerung.

Ein Workflow einschließlich verschachtelter Skripte darf insgesamt höchstens 1000 Anweisungen ohne Kommentare enthalten. -n meldet bei Fehlern Stopped statt Checked und führt keine Befehle aus.

Interaktive Sandbox-Vorschau

Führen Sie die vorbereiteten Beispiele direkt auf der Seite aus. Die Ergebnisse sind vorab erstellt und werden im Browser angezeigt; auf dem Server wird kein Terminalbefehl ausgeführt.

Ein normales oder gepacktes .lil-Skript ausführen

Installieren und verwalten

Installieren Sie die aktuelle kompatible Version. Wählen Sie Base für den vollständigen Funktionsumfang oder Minimum für das reduzierte Paket; ein bereits installiertes Modul wird mit upgrade aktualisiert.

Base und Minimum sind zwei Pakete derselben aktuellen Modulversion.

Base-Paket

Vollständiges Paket mit lokaler Referenz und allen veröffentlichten Modi installieren.

install run
Minimum-Paket

Das reduzierte Paket installieren. Die lokale Referenz entfällt; help <cmd> -i öffnet die aktuelle Serverreferenz.

install run -m
Exakte öffentliche Version

Genau diese veröffentlichte Version installieren.

install run -v 1.2.4
Prüfen oder aktualisieren

upgrade prüft Kompatibilität und ersetzt den Block nur bei Bedarf.

upgrade run
Modul entfernen

Erweiterungsblock entfernen, Core und andere Module bleiben erhalten.

install run -u

Beispiele

Die Beispiele sind kopierbar, werden aber nicht von der Website ausgeführt. Prüfen Sie Pfade, Rechte und destruktive Optionen.

Ein normales oder gepacktes .lil-Skript ausführen
run sandbox/scripts/workflow.lil
001 + pwd
002 + pwd
Completed: 2
Vollständige Befehlsausgabe anzeigen
run sandbox/scripts/workflow.lil -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
Erweiterte Befehle prüfen und anzeigen, ohne sie auszuführen
run sandbox/scripts/workflow.lil -n
001 · pwd
002 · pwd
Checked: 2
Erweiterte Befehle prüfen und anzeigen, ohne sie auszuführen
run sandbox/scripts/workflow.lil -n -v
001 · pwd
002 · pwd
Checked: 2
Alias für run
lil sandbox/scripts/workflow.lil
001 + pwd
002 + pwd
Completed: 2

lil ist der kurze Alias von run; gespeicherte .lil-Abläufe und eingefügte Automatisierung verwenden denselben Befehlsweg.

Ein Inline-Skript ausführen; ein nicht zitiertes | trennt Anweisungen
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
Run verwenden, wenn Variablen, Bedingungen, Verschachtelung, Capture oder andere Ablaufsteuerung nötig sind
run sandbox/scripts/nested.lil -v
001 + pwd
    sandbox
002 + pwd
    sandbox
Completed: 2
Ein normales oder gepacktes .lil-Skript ausführen
run [upload | pwd]
001 – upload
    Command is not allowed in scripts
Stopped: 1
Nach Fehlern fortfahren; standardmäßig beim ersten Fehler stoppen
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
Privilegierte nichtinteraktive Befehle wie php und ses erlauben
run [pwd | php -v]
001 + pwd
002 – php -v
    Command is not allowed in scripts
Stopped: 2
Privilegierte nichtinteraktive Befehle wie php und ses erlauben
run [pwd | php -v] -x -v
001 + pwd
    sandbox
002 + php -v
    PHP 8.4.24
Completed: 2
Privilegierte nichtinteraktive Befehle wie php und ses erlauben
run sandbox/scripts/privileged.lil
001 – php -v
    Command is not allowed in scripts
Stopped: 1
Privilegierte nichtinteraktive Befehle wie php und ses erlauben
run sandbox/scripts/privileged.lil -x -v
001 + php -v
    PHP 8.4.24
Completed: 1
Erweiterte Befehle prüfen und anzeigen, ohne sie auszuführen
run sandbox/scripts/invalid.lil -n
001 · pwd
Line 003 – Missing end
Stopped: 1
Run verwenden, wenn Variablen, Bedingungen, Verschachtelung, Capture oder andere Ablaufsteuerung nötig sind
run sandbox/scripts/recursive.lil
Recursive script detected
Stopped: 0
Ein normales oder gepacktes .lil-Skript ausführen
run sandbox/scripts/blocked.lil
001 – @install find
    Automatic installation is not allowed in scripts
Stopped: 1
Nach Fehlern fortfahren; standardmäßig beim ersten Fehler stoppen
run sandbox/scripts/recover.lil -k
001 – upload
    Command is not allowed in scripts
002 + pwd
Stopped: 2
Ein prüfsummengeschütztes gepacktes Skript erstellen
run -p sandbox/scripts/workflow.lil sandbox/scripts/workflow.export.lil
Packed workflow.lil > sandbox/scripts/workflow.export.lil
182 B > 256 B
Ein normales oder gepacktes .lil-Skript ausführen
run sandbox/scripts/workflow.packed.lil
001 + pwd
002 + pwd
Completed: 2
Erweiterte Befehle prüfen und anzeigen, ohne sie auszuführen
run sandbox/scripts/workflow.packed.lil -n
001 · pwd
002 · pwd
Checked: 2
Ein normales oder gepacktes .lil-Skript ausführen
run [@install find]
001 – @install find
    Automatic installation is not allowed in scripts
Stopped: 1
Ein normales oder gepacktes .lil-Skript ausführen
run [upload]
001 – upload
    Command is not allowed in scripts
Stopped: 1
Ein normales oder gepacktes .lil-Skript ausführen
run sandbox/scripts/missing.lil
Script file not found
Ein normales oder gepacktes .lil-Skript ausführen
run sandbox/data/sample.txt
Script must use the .lil extension
Ein normales oder gepacktes .lil-Skript ausführen
run sandbox/scripts/workflow.lil -z
Unknown run option: -z
Ein Inline-Skript ausführen; ein nicht zitiertes | trennt Anweisungen
run [pwd
Inline script is missing ]
Ein normales oder gepacktes .lil-Skript ausführen
run
?

In diesem Beispiel verwendete Datei: sandbox/scripts/demo.lil

Das Beispiel verwendet eine Datei oder ein Verzeichnis aus dem geschützten Dokumentationsbereich /sandbox/.

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

Verwandte Dokumentation

Aktuelle öffentliche Version

v1.2.42026-11-01

Produktionsreife Verfeinerung

Aktuelle stabile Version von run. run führt `.