Bei einer COMMAND-Aktion müssen mindestens zwei Felder angegeben werden - ACTION und EXEC_STRING.
ACTION Aktionsname { EXEC_STRING Ausführungszeichenfolge }
Die Ausführungszeichenfolge ist der wichtigste Teil einer COMMAND-Aktionsdefinition. Die verwendete Syntax entspricht der Befehlszeile in einem Terminal-Fenster, enthält aber zusätzliche Elemente für Datei- und Zeichenfolgenargumente.
Ausführungszeichenfolgen können folgendes enthalten:
Dateiargumente und andere Parameter
Shell-Syntax
Absolute Pfade oder Namen ausführbarer Dateien
Bei einem Argument handelt es sich um Informationen, die von einem Befehl oder einer Anwendung für die Ausführung benötigt werden. So kann beispielsweise mit der folgenden Befehlszeile eine Datei im Texteditor geöffnet werden:
dtpad Dateiname
In diesem Befehl ist Dateiname ein Dateiargument für den Befehl dtpad.
Aktionen können wie Anwendungen und Befehle mit Argumenten aufgerufen werden. Bei einer COMMAND-Aktion können dabei zwei Arten von Daten verwendet werden:
Dateien
Zeichenfolgen
Die Ausführungszeile wird direkt und nicht durch eine Shell ausgeführt. Es kann jedoch explizit eine Shell in der Ausführungszeichenfolge aufgerufen werden.
Ein Beispiel:
EXEC_STRING \ /bin/sh -c \ 'tar -tvf %(File)Arg_1% 2>&1 | \${PAGER:-more};\ echo "\\n*** Zum Schließen im Menü 'Fenster' die Option 'Schließen' wählen ***"'
Befindet sich die Anwendung in einem Verzeichnis, das in der Variablen PATH aufgeführt ist, muß nur der Name der ausführbaren Datei angegeben werden. Ist das Verzeichnis nicht im Pfad enthalten, muß der absolute Pfadname der ausführbaren Datei verwendet werden.
Verwenden Sie für EXEC_STRING dieselbe Syntax wie für den Start der Anwendung von der Befehlszeile.
Die folgende Ausführungszeichenfolge gehört zu einer Aktion, die den X-Client xcutsel startet.
EXEC_STRING xcutsel
Die nächste Zeichenfolge startet den Client xclock mit einer Digitaluhr. Die Befehlszeile enthält eine Befehlszeilenoption, aber es werden keine Argumente benötigt.
EXEC_STRING xclock -digital
Verwenden Sie folgende Syntax für das Dateiargument:
%Arg_n%
Oder
%(File)Arg_n%
(File) ist optional, da an Arg_n übergebene Werte immer als Dateien betrachtet werden (im Abschnitt "Ein Dateiargument als Zeichenfolge interpretieren" finden Sie Informationen zur Verwendung der Syntax %(String)Arg_n%).
Mit dieser Syntax kann der Benutzer ein Dateiobjekt auf dem Aktionssymbol ablegen, um die Aktion mit dem übergebenen Dateiargument zu starten. Dabei wird das nte Argument in die Befehlszeile übernommen. Die Datei kann sich auf dem lokalen oder auf einem entfernten System befinden.
Die folgende Ausführungszeichenfolge führt wc -w aus. Dabei wird eine abgelegte Datei im Parameter -load verwendet.
EXEC_STRING wc -w %Arg_1%
Im folgenden Beispiel können nur Verzeichnisargumente verwendet werden. Wird ein Verzeichnis auf dem Aktionssymbol abgelegt, zeigt die Aktion eine Liste aller Dateien im Verzeichnis an, für die Lese-/Schreibzugriffsrechte vorliegen.
ACTION Beschreibbare_Dateien_anzeigen { ARG_TYPE FOLDER EXEC_STRING /bin/sh -c 's -l %Arg_1% | grep rw-' ... }
Verwenden Sie für das Dateiargument folgende Syntax:
%(File)"Eingabeaufforderung"%
Mit dieser Syntax wird eine Aktion erstellt, die eine Aufforderung zur Eingabe eines Dateinamens anzeigt, sobald der Benutzer doppelt auf das Aktionssymbol klickt.
So zeigt beispielsweise folgende Ausführungszeichenfolge ein Dialogfenster an, in dem der Benutzer zur Eingabe des Dateiarguments für den Befehl wc --w aufgefordert wird:
EXEC_STRING wc -w %(File)"Wörter zählen in Datei:"%
Verwenden Sie für das Dateiargument folgende Syntax:
%Arg_n"Eingabeaufforderung "%
Oder
%(File)Arg_n"Eingabeaufforderung "%
Mit dieser Syntax wird eine Aktion erstellt, die
eine abgelegte Datei als Argument akzeptiert oder
ein Dialogfenster mit einer Aufforderung zur Eingabe eines Dateinamens anzeigt, sobald der Benutzer doppelt auf das Aktionssymbol klickt.
So führt beispielsweise folgende Ausführungszeichenfolge den Befehl lp -oraw für die abgelegte Datei aus. Wird die Aktion durch Doppelklicken auf das Symbol gestartet, erscheint ein Dialogfenster mit einer Aufforderung zur Eingabe des Dateinamens.
EXEC_STRING lp -oraw %Arg_1"Zu druckende Datei:"%
Verwenden Sie für Nicht-Dateiargumente folgende Syntax:
%"Eingabeaufforderung"%
Oder
%(String)"Eingabeaufforderung"%
(String) muß nicht angegeben werden, da in Anführungszeichen gesetzter Text standardmäßig als Zeichenfolge interpretiert wird. Mit dieser Syntax wird ein Dialogfenster angezeigt, in dem der Benutzer zur Eingabe aufgefordert wird. Verwenden Sie sie nicht, um den Benutzer zur Eingabe eines Dateinamens aufzufordern.
Im folgenden Beispiel wird der Befehl xwd ausgeführt. Er fordert zur Eingabe eines Werts auf, der jedem Pixel hinzugefügt wird:
EXEC_STRING xwd -add %"Wert eingeben:"% -out %Arg_1"Dateiname:"%
Verwenden Sie für das Argument folgende Syntax:
%(String)Arg_n%
So druckt beispielsweise folgende Ausführungszeichenfolge mit dem Befehl lp -tbanner Dateiname eine Datei mit einem Deckblatt, das den Dateinamen enthält.
EXEC_STRING lp -t%(String)Arg_1% %(File)Arg_1"Zu druckende Datei:"%
Geben Sie die Shell folgendermaßen in der Ausführungszeichenfolge an:
/bin/sh -c 'Befehl' /bin/ksh -c 'Befehl' /bin/csh -c 'Befehl'
Das folgende Beispiel zeigt den Einsatz des Shell-Piping in einer Aktion.
EXEC_STRING /bin/sh -c 'ps | lp'
In diesem Beispiel wird eine komplexere Ausführungszeichenfolge verwendet, die eine Shell-Verarbeitung voraussetzt und ein Dateiargument akzeptiert.
EXEC_STRING /bin/sh -c 'tbl %Arg_1"Hilfeseite:"% | troff -man'
Die folgende Ausführungszeichenfolge benötigt als Argument eine komprimierte Datei. Die Aktion entkomprimiert die Datei und druckt sie mit dem Befehl lp -oraw.
EXEC_STRING /bin/sh -c 'cat %Arg_1 "Zu druckende Datei:"% | \ uncompress | lp -oraw'
Die folgende Ausführungszeichenfolge startet ein Shell-Skript.
EXEC_STRING /usr/local/bin/StartGnuClient
Aktionen können mehrere Dateiargumente auf drei verschiedene Arten bearbeiten:
Die Aktion wird für jedes Argument einmal ausgeführt. Enthält das Feld EXEC_STRING nur ein Dateiargument und werden mehrere Dateiargumente durch Ablegen auf das Aktionssymbol übergeben, wird die Aktion für jedes Dateiargument separat ausgeführt.
Werden beispielsweise bei folgender Aktionsdefinition mehrere Dateiargumente angegeben
ACTION DisplayScreenImage { EXEC_STRING xwud -in %Arg_1% ... }
wird die Aktion DisplayScreenImage mehrmals ausgeführt.
Die Aktion verwendet zwei oder mehr nicht austauschbare Dateiargumente. So setzt beispielsweise
xsetroot -cursor Cursordatei Maskendatei
zwei eindeutige Dateien in der angegebenen Reihenfolge voraus.
Die Aktion führt denselben Befehl nacheinander für alle übergebenen Dateiargumente aus. So druckt beispielsweise
pr Dateiname [Dateiname ...]
eine oder mehrere Dateien in einem Druckauftrag.
Verwenden Sie eine der folgenden Syntaxkonventionen:
Soll zur Eingabe der Dateinamen aufgefordert werden, verwenden Sie für jedes Dateiargument folgende Syntax:
%(File)"Eingabeaufforderung"%
Verwenden Sie für jedes Argument eine andere Eingabeaufforderung .
So fordert beispielsweise folgende Ausführungszeichenfolge zur Eingabe zweier Dateinamen auf.
EXEC_STRING xsetroot -cursor %(File)"Cursor-Bitmap:"% \ %(File)"Masken-Bitmap:"%
Sollen abgelegte Dateien akzeptiert werden, verwenden Sie folgende Syntax:
%Arg_n%
Verwenden Sie dabei für jedes Argument einen anderen Wert für n. Ein Beispiel:
EXEC_STRING diff %Arg_1% %Arg_2%
Verwenden Sie eine der folgenden Syntaxkonventionen:
Um eine Aktion zu erstellen, die abgelegte Dateien akzeptiert und einen Befehl der Form Befehl Datei 1 Datei 2 ... ausführt, verwenden Sie folgende Syntax für die Dateiargumente:
%Args%
Soll eine Aktion erstellt werden, die mehrere abgelegte Dateien akzeptiert oder bei einem Doppelklick eine Aufforderung zur Eingabe eines Dateinamens anzeigt, verwenden Sie folgende Syntax für die Dateiargumente:
%Arg_1"Eingabeaufforderung"% %Args%
Die Aktion gibt einen Befehl der Form Befehl Datei 1 Datei 2 ... aus.
Die folgende Ausführungszeichenfolge erstellt eine Aktion, die den Befehl
pr Datei 1 Datei 2
mit mehreren Dateiargumenten ausführt.
EXEC_STRING pr %Args%
Die folgende Ausführungszeichenfolge erstellt eine ähnliche Aktion wie im vorhergehenden Beispiel. Jedoch wird hier eine Eingabeaufforderung angezeigt, sobald doppelt auf das Aktionssymbol geklickt wird (keine Dateiargumente).
EXEC_STRING pr %Arg_1"Zu druckende Datei(en):"% %Args%
Um das Ablegen mehrerer Dateien zu akzeptieren und einen Befehl der Form
Befehl Datei 1 Datei 2 ...
auszuführen, verwenden Sie folgende Syntax:
%Args%
Die folgende Ausführungszeichenfolge startet das Skript Checkout für mehrere Dateien:
EXEC_STRING /usr/local/bin/Checkout \ %Arg_1"Welche Datei?"% %Args%