So verwenden Sie den SLAX-Prozessor (slaxproc)
Der SLAX-Prozessor (slaxproc) ist ein Befehlszeilentool, das die SLAX-Skriptsyntax validieren, zwischen SLAX- und XSLT-Formaten konvertieren und SLAX-Skripte formatieren oder ausführen kann. Die slaxproc-Modi definieren, welche Funktion der Prozessor ausführt. In den folgenden Abschnitten werden häufig verwendete Modi beschrieben. Eine vollständige Liste der slaxproc-Modi finden Sie unter Grundlegendes zum SLAX-Prozessor (slaxproc).
Überprüfen der SLAX-Skriptsyntax
Der SLAX-Prozessor bietet die Möglichkeit, die Syntax eines SLAX-Skripts zu überprüfen.
Um die Syntax eines SLAX-Skripts zu überprüfen, geben Sie den
slaxproc
Befehl mit der--check
Option or-c
mode und dem Namen der Skriptdatei ein.$ slaxproc --check script1.slax OR $ slaxproc -c script1.slax
Wenn die Skriptsyntax korrekt ist, gibt der SLAX-Prozessor die Meldung "Skriptprüfung erfolgreich" aus. Andernfalls gibt der Prozessor eine Liste von Fehlermeldungen aus, die während der Skriptanalyse erkannt wurden. Beheben Sie alle angezeigten Fehler und wiederholen Sie die Prüfung.
Konvertieren von Skripten zwischen XSLT- und SLAX-Formaten
Der SLAX-Prozessor unterstützt die Konvertierung von Skripten zwischen SLAX- und XSLT-Formaten. Wenn Sie ein Skript konvertieren, haben Sie die Möglichkeit, die Dateiargumente positionsbezogen zu referenzieren oder die Befehlszeilendateioptionen oder -i
und oder --output
zu -o
verwenden, --input
um das ursprüngliche Eingabeskript bzw. das konvertierte Ausgabeskript anzugeben. Wenn Sie die Befehlszeilendateioptionen verwenden, kann in der Befehlszeile in beliebiger Reihenfolge auf die Dateien verwiesen werden, und die Dateioptionen können zwischen anderen Befehlszeilenoptionen eingefügt werden.
Wenn Sie kein Argument angeben, das eine Eingabe- oder Ausgabedatei angibt, wird die Standardeingabe oder die Standardausgabe verwendet. Wenn Sie die Standardeingabe verwenden, drücken Sie Strg+d, um das Dateiende zu signalisieren.
Um ein SLAX-Skript in XSLT zu konvertieren, setzen Sie den slaxproc
Befehl mit der --slax-to-xslt
Option or -x
mode ab. Um die Dateien positionsbezogen zu referenzieren, geben Sie als erstes Argument die SLAX-Eingabedatei und als zweites Argument den gewünschten Ausgabepfad und Dateinamen des konvertierten XSLT-Skripts an. Wenn Sie mithilfe von Befehlszeilendateioptionen auf die Dateien verweisen möchten, fügen Sie die Dateioptionen in beliebiger Reihenfolge ein. Zum Beispiel:
$ slaxproc --slax-to-xslt test/script2.slax test/script2.xsl OR $ slaxproc -x -i test/script2.slax -o test/script2.xsl
Um ein XSLT-Skript in SLAX zu konvertieren, setzen Sie den slaxproc
Befehl mit der --xslt-to-slax
Option or -s
mode ab. Um die Dateien positionsbezogen zu referenzieren, geben Sie als erstes Argument die XSLT-Eingabedatei und als zweites Argument den gewünschten Ausgabepfad und Dateinamen des konvertierten SLAX-Skripts an. Wenn Sie mithilfe von Befehlszeilendateioptionen auf die Dateien verweisen möchten, fügen Sie die Dateioptionen in beliebiger Reihenfolge ein.
Fügen Sie beim Konvertieren eines Skripts von XSLT in SLAX optional die --write-version
Option oder -w
hinzu, um die SLAX-Version des konvertierten Skripts anzugeben. Zulässige Werte sind 1,0, 1,1 und 1,2. Die Standardversion ist die neueste SLAX-Version. Verwenden Sie die Option für die -p
Teileingabe, wenn Sie den SLAX-Skript-Textbaustein in der Ausgabe nicht benötigen.
Im folgenden Beispiel wird das XSLT-Skript script1.xsl in das SLAX-Skript script1.slax konvertiert. Das SLAX-Skript enthält die Anweisung "Version 1.0; " als erste Zeile des Skripts.
$ slaxproc --xslt-to-slax -w 1.0 test/script1.xsl test/script1.slax OR $ slaxproc -s -w 1.0 -i test/script1.xsl -o test/script1.slax
Der slaxproc-Modus --xslt-to-slax
mit dieser -p
Option ist nützlich, um Junos OS-Hierarchien schnell vom XML-Format in SLAX zu konvertieren. Im folgenden Beispiel wird die Junos OS-Hierarchie [edit policy-options]
im XML-Format als Eingabe für den SLAX-Prozessor bereitgestellt. Die -p
Option gibt eine partielle Skripteingabe im Gegensatz zu einem vollständigen Skript an.
$ slaxproc -s -p <policy-options> <policy-statement> <name>export-policy</name> <term> <name>term1</name> <from> <route-filter> <address>10.0.4.4/30</address> <prefix-length-range>/30-/30</prefix-length-range> </route-filter> </from> <then> <accept/> </then> </term> </policy-statement> </policy-options> [Ctrl+d]
Der SLAX-Prozessor gibt die SLAX-Formatierung für die Hierarchie zurück.
<policy-options> { <policy-statement> { <name> "export-policy"; <term> { <name> "term1"; <from> { <route-filter> { <address> "10.0.4.4/30"; <prefix-length-range> "/30-/30"; } } <then> { <accept>; } } } }
Ausführen von SLAX-Skripten
Der SLAX-Prozessor unterstützt das Ausführen von SLAX-Skripten über die Befehlszeile. Dies ist der standardmäßige slaxproc-Modus. Um diesen Modus explizit zu verwenden, geben Sie den slaxproc
Befehl mit der --run
Option oder -r
Befehlszeilenmodus ab.
Wenn Sie ein Skript ausführen, haben Sie die Möglichkeit, die Dateiargumente positionsbezogen zu referenzieren oder die Befehlszeilendateioptionen zu verwenden, --name
oder -n
, --input
oder -i
, und --output
oder -o
, um die SLAX-Skriptdatei bzw. die Eingabe- bzw. Ausgabedateien anzugeben. Wenn Sie die Befehlszeilendateioptionen verwenden, kann in der Befehlszeile in beliebiger Reihenfolge auf die Dateien verwiesen werden, und die Dateioptionen können zwischen anderen Befehlszeilenoptionen eingefügt werden.
Wenn keine Eingabedatei erforderlich ist, verwenden Sie die -E
Option, um ein leeres Eingabedokument anzugeben. Wenn das Eingabe- oder Ausgabeargument den Wert "-" hat, wird außerdem die Standardeingabe oder die Standardausgabe verwendet. Wenn Sie die Standardeingabe verwenden, drücken Sie Strg+d, um das Dateiende zu signalisieren.
Die Syntax zum Ausführen eines Skripts lautet:
$ slaxproc script input-file output-file OR $ slaxproc (--name | -n) script (--input | -i) input-file (--output | -o) output-file
So führen Sie ein Skript mit dem Befehlszeilentool slaxproc aus:
Formatieren von SLAX-Skripten
Der SLAX-Prozessor bietet die Möglichkeit, ein Skript zu formatieren, um den Einzug und den Abstand auf den bevorzugten Stil zu korrigieren. Wenn Sie ein Skript formatieren, haben Sie die Möglichkeit, die Dateiargumente positionsbezogen zu referenzieren oder die Befehlszeilendateioptionen oder -i
und oder --output
zu -o
verwenden, --input
um die unformatierte Eingabedatei bzw. die formatierte Ausgabedatei anzugeben. Wenn Sie die Befehlszeilendateioptionen verwenden, kann in der Befehlszeile in beliebiger Reihenfolge auf die Dateien verwiesen werden.
Um ein SLAX-Skript zu formatieren, geben Sie den slaxproc
Befehl mit der --format
Option or -F
mode ein. Um die Dateien positionsbezogen zu referenzieren, geben Sie als erstes Argument das unformatierte SLAX-Skript und als zweites Argument den gewünschten Ausgabepfad und Dateinamen des formatierten SLAX-Skripts an. Wenn Sie mithilfe von Befehlszeilendateioptionen auf die Dateien verweisen möchten, fügen Sie die Dateioptionen in beliebiger Reihenfolge ein. Zum Beispiel:
$ slaxproc --format script1.slax script1-format.slax OR $ slaxproc -F -i script1.slax -o script1-format.slax
Bei folgendem unformatiertem SLAX-Skript als Eingabe:
version 1.1; decimal-format default-format { decimal-separator "." ; digit "#" ; grouping-separator "," ; infinity "Infinity" ; minus-sign "-" ; nan "NaN"; pattern-separator ";" ; percent "%"; per-mille "\x2030"; zero-digit "0" ; } match / { var $number = -14560302.5; expr format-number($number, "###,###.00", "default-format"); }
Der SLAX-Prozessor gibt das folgende formatierte SLAX-Skript aus:
version 1.1; decimal-format default-format { decimal-separator "."; digit "#"; grouping-separator ","; infinity "Infinity"; minus-sign "-"; pattern-separator ";"; percent "%"; per-mille " 30"; zero-digit "0"; nan "NaN"; } match / { var $number = -14560302.5; expr format-number($number, "###,###.00", "default-format"); }