Verstehen des SLAX-Prozessors (slaxproc)
slaxproc – Überblick
Die Libslax-Distribution enthält die libslax-Bibliothek, die einen SLAX-Writer und SLAX-Parser, einen Debugger, einen Profiler und den SLAX-Prozessor (slaxproc) umfasst. Der SLAX-Prozessor ist ein Befehlszeilentool, das die SLAX-Skriptsyntax validieren, zwischen SLAX- und XSLT-Formaten konvertieren und SLAX-Skripte formatieren, debuggen oder ausführen kann.
Der SLAX-Prozessor wird über die Befehlszeile mit dem slaxproc
Befehl aufgerufen. Der slaxproc
Befehl akzeptiert Befehlszeilenargumente, die den Modus des Prozessors, alle Verhaltensoptionen und die erforderlichen Ein- und Ausgabedateien angeben.
Die Syntax für den slaxproc
Befehl lautet:
slaxproc [mode] [options] [script] [files]
Der slaxproc-Modus definiert, welche Funktion der Prozessor ausführt. slaxproc-Optionen umfassen Dateioptionen und gemeinsame Optionen. Dateioptionen werden verwendet, um die Skriptdatei, die Eingabedatei, die Ausgabedatei und die Ablaufverfolgungsdatei anzugeben. Zu den gängigen Optionen gehören zusätzliche Funktionen, die vom SLAX-Prozessor bereitgestellt werden, wie z. B. ausführliche Debugging-Ausgaben.
Sie können auf die slaxproc-Hilfe zugreifen, indem Sie den slaxproc
Befehl mit der --help
oder -h
Option ausstellen.
$ slaxproc -h
Weitere Informationen zum SLAX-Prozessor finden Sie unter slaxproc: Der SLAX-Prozessor.
slaxproc-Modi
Der slaxproc-Modus definiert, welche Funktion der Prozessor ausführt. Der Standardmodus ist --run
oder -r
. Wenn Sie einen Modus nicht explizit angeben, führt der SLAX-Prozessor ein Skript aus. Tabelle 1 zeigt die Slaxproc-Modi und ihre Funktionen.
Modus |
Beschreibung |
---|---|
|
Führen Sie eine Syntax- und Inhaltsüberprüfung für ein SLAX-Skript durch und melden Sie Fehler. Dieser Modus eignet sich für off-box-Syntaxprüfungen, bevor Skripte installiert oder auf ein Gerät mit Junos OS hochgeladen werden. |
|
Formatieren Sie ein SLAX-Skript, korrigieren Sie Einzug und Abstand zum bevorzugten Stil. |
|
Transformieren Sie JSON-Eingaben in XML mithilfe der in http://juniper.github.io/libslax/slax-manual.html#json-elements definierten Konventionen. |
|
Führen Sie ein SLAX-Skript aus. Dies ist der Standardmodus. Der Skriptname, der Eingabedateiname und der Ausgabedateiname können mithilfe von Befehlszeilenoptionen, Positionsargumenten oder einer Kombination aus beiden angegeben werden. Input Defaults to Standard Input, Output Defaults to Standard Output. |
|
Zeigen Sie eine XPath-Auswahl aus dem Eingabedokument an. Dieser Modus wird verwendet, um Auswahlen aus einem Skript für die externe Nutzung zu extrahieren. Auf diese Weise kann der Verbraucher einen SLAX-Parser vermeiden, hat aber dennoch Einblick in den Inhalt des Skripts. |
|
Zeigt den Inhalt einer globalen Variablen an. Dieser Modus wird verwendet, um statische Variablen für die externe Nutzung zu extrahieren. Dies ermöglicht es dem Verbraucher der Daten, einen SLAX-Parser zu vermeiden, hat aber dennoch Zugriff auf den statischen Inhalt globaler Variablen, wie z. B. der |
|
Konvertieren Sie ein SLAX-Skript in das XSLT-Format. Der Skriptdateiname und der Ausgabedateiname werden mithilfe von Befehlszeilenoptionen, Positionsargumenten oder einer Mischung aus beiden bereitgestellt. |
|
Konvertieren Sie XML in JSON mit den in http://juniper.github.io/libslax/slax-manual.html#json-elements definierten Konventionen. |
|
Wählen Sie Daten aus dem Eingabedokument aus, die dem angegebenen XPath-Ausdruck entsprechen. |
|
Konvertieren Sie ein XSLT-Skript in das SLAX-Format. Der Skriptdateiname und der Ausgabedateiname werden mithilfe von Befehlszeilenoptionen, Positionsargumenten oder einer Mischung aus beiden bereitgestellt. |
slaxproc-Optionen
Die slaxproc-Optionen umfassen Dateioptionen und gängige Optionen. Dateioptionen werden verwendet, um die Skriptdatei, die Eingabedatei, die Ausgabedatei und die Ablaufverfolgungsdatei anzugeben. Zu den gängigen Optionen gehören zusätzliche Funktionen und Optionen, die vom SLAX-Prozessor bereitgestellt werden, z. B. ausführliche Debugging-Ausgaben. Tabelle 2 listet die allgemeinen Slaxproc-Optionen und Dateioptionen auf.
Option |
Beschreibung |
---|---|
|
Aktivieren Sie den SLAX/XSLT-Debugger. |
|
Geben Sie ein leeres Dokument als Eingabedatensatz ein. Dies ist nützlich für Skripte, die keine aussagekräftigen Informationen erwarten oder benötigen. |
|
Konvertieren Sie einen SLAX-Ausdruck in einen XPATH-Ausdruck oder umgekehrt, je nachdem, ob --slax-to-xslt oder --xslt-to-slax vorhanden ist. |
|
Aktivieren Sie die EXSLT-Bibliothek, die eine Reihe von Standarderweiterungsfunktionen bietet. Weitere Informationen finden Sie in http://www.exslt.org . |
|
Zeigen Sie die Hilfenachricht an und beenden Sie das Netzwerk. |
|
Analysieren Sie Eingabedaten mit dem HTML-Parser, der sich von XML unterscheidet. |
|
Verarbeiten Sie keine weiteren Argumente. Dies kann kombiniert |
|
Fügen Sie ein Verzeichnis zur Liste der Verzeichnisse hinzu, die bei verwendung von Include- und Importdateien durchsucht werden. Alternativ können Sie die SLAXPATH-Umgebungsvariable definieren, um eine durch Doppelpunkt getrennte Liste von Verzeichnissen für die Suche anzugeben. |
|
Eindrückungs-Ausgabe. Diese Option ist identisch mit dem verhalten, das von |
|
Lesen Sie Eingaben aus der angegebenen Datei. |
|
JSON-Tag-Elemente mit dem Attribut 'json', während die Eingabe in XML konvertiert wird. Auf diese Weise können Sie den |
|
Fügen Sie beim Erstellen eines Skripts aus Minivorlagen keine Vorlage hinzu, um normalen Text zu verwerfen. Standardmäßig zeigt XSLT unübertroffene Textdaten an. Diese Option behält das Standardverhalten bei, anstatt es durch die Verwerfen-Aktion zu ersetzen. |
|
Fügt der Liste der Verzeichnisse, die mit Erweiterungsbibliotheken durchsucht werden, ein Verzeichnis hinzu. Alternativ können Sie die SLAXEXTPATH-Umgebungsvariable definieren, um eine durch Doppelpunkt getrennte Liste von Erweiterungsbibliotheksstandorten für die Suche anzugeben. |
|
Schreiben Sie Protokolldaten in die angegebene Datei. |
|
Übergeben Sie ein einfaches Skript über die Befehlszeile. Das Argument ist in der Regel eine Vorlage, z. B. eine Named- oder Match-Vorlage. |
|
Lesen Sie das SLAX-Skript aus der angegebenen Datei. |
|
Lassen Sie Attribute weg |
|
Initialisieren Sie den Zufallsgenerator nicht. Dies ist nützlich, wenn das Skript identische Daten für eine Reihe von Aufrufen zurücksendet. Diese Option wird in der Regel nur während der Tests verwendet. |
|
Verwenden Sie tty nicht für den SLAX-Debugger und andere Tty-bezogene Eingabeanforderungen. |
|
Schreiben sie die Ausgabe in die angegebene Datei. |
|
Übergeben Sie einen Parameter an das Skript mithilfe des bereitgestellten Namens- und Wertpaars. Alle Parameter sind Zeichenfolgenparameter, sodass normale Quotierungsregeln gelten. |
|
Erlauben Sie den Eingabedaten, ein partielles SLAX-Skript zu enthalten, das mit dem |
|
Schreiben Sie die Ergebnisse mithilfe von XML im SLAX-Stil. |
|
Schreiben Sie Trace-Daten in die angegebene Datei. |
|
Fügen Sie der Trace-Datenausgabe ausführliche interne Debugging-Ausgabe hinzu, einschließlich Aufrufen der |
|
Versionsinformationen anzeigen und beenden. |
|
Schreiben Sie die angegebene Versionsnummer in die Ausgabedatei, wenn Sie ein Skript mithilfe des Diese Option kann verwendet werden, um die Konvertierung auf die Verwendung von Funktionen in bestimmten SLAX-Versionen zu beschränken. Zulässige Werte sind 1.0, 1.1, 1.2. Wenn diese Option nicht angegeben ist, wird die SLAX-Skriptversion standardmäßig auf die neueste Version festgelegt. |
slaxproc File Argument Handling
Für alle Modi, außer check
, haben Sie die Option, Dateiargumente positional zu referenzieren oder die Dateioptionen zu verwenden, um Ein- und Ausgabedateien anzugeben. Wenn Sie die Dateioptionen verwenden, kann in der Befehlszeile in beliebiger Reihenfolge auf die Dateien verwiesen werden, und die Dateioptionen können zwischen anderen Befehlszeilenoptionen aufgeteilt werden.
Wenn keine Eingabedatei erforderlich ist, verwenden Sie die -E
Option, um ein leeres Eingabedokument anzugeben. Wenn das Argument für die Ein- oder Ausgabeoption den Wert "-" hat, wird außerdem die Standard-Ein- oder Standardausgabedatei verwendet. Drücken Sie bei Verwendung der Standardeingabe Strg+d, um das Ende der Datei zu signalisieren.
Wenn Dateien in der Befehlszeile positional referenziert werden sollen, geben Sie zuerst die Skriptdatei an, wenn sie für diesen Modus erforderlich ist, geben Sie dann die Eingabedatei an, und geben Sie zuletzt die Ausgabedatei an. Durch die positionsgenaue Referenzierung der Dateien ist slaxproc plug-kompatibel mit xsltproc.
$ slaxproc script.slax input.xml output.xml
Um Dateien mit den Werten expliziter Dateioption zu referenzieren, fügen --name
Sie --output
-i
-o
die -n
--input
SLAX-Skriptdatei bzw. die Ein- und Ausgabedateien ein.
$ slaxproc -i input.xml -n script.slax -o output.xml
Wenn keine Dateioption bereitgestellt wird, wird der Dateiname positional analysiert. Im folgenden Befehl werden die Ein- und Ausgabedateinamen mithilfe der Dateioptionen angegeben, aber der Skriptdateiname wird positional referenziert:
$ slaxproc -i input.xml -o output.xml -g -v script.slax
Um ein Skript auszuführen, für das keine Eingabedatei erforderlich ist, schließen Sie die -E
Option zur Angabe eines leeren Eingabedokuments ein.
$ slaxproc -E script.slax output.xml
slaxproc UNIX-Scripting-Unterstützung
SLAX unterstützt das Shebang-Konstrukt (#!), sodass die erste Zeile eines Skripts mit den Zeichen "#" und "!" beginnt, gefolgt von einem Pfad zu der ausführbaren Datei, die das Skript und eine Reihe von Befehlszeilenargumenten ausführt. Zum Beispiel:
#!/usr/bin/slaxproc -n or #!/opt/local/bin/slaxproc -n
Das Betriebssystem fügt den Namen der Skripte und etwaige Befehlszeilenargumente zur Befehlszeile hinzu, die auf "#!" folgt. Durch Hinzufügen der ‑n
Option können zusätzliche Argumente an die Befehlszeile übergeben werden. Flexible Argument-Analyse ermöglicht Aliase. Wenn beispielsweise die erste Zeile des Skripts lautet:
#!/usr/bin/slaxproc -E -n
Es können weitere Argumente bereitgestellt werden:
$ that-script -g output.xml
und der daraus resultierende Befehl wird:
/usr/bin/slaxproc -E -n /path/to/that-script -g output.xml
Wenn das Ein- oder Ausgabeargument den Wert "-" hat, wird die Standard-Ein- oder Standardausgabedatei verwendet. Dadurch kann slaxproc als herkömmlicher UNIX-Filter verwendet werden.