<?xml version="1.0" encoding="UTF-8" ?> <sect1 id="specials"> <sect1info> <title >Anweisungen und eingebaute globale Variable</title> <authorgroup> <author ><firstname ></firstname > <surname ></surname > <affiliation ><address > <email ></email> </address ></affiliation> </author> <othercredit role="translator" ><firstname >Georg</firstname ><surname >Schuster</surname ><affiliation ><address ><email >gschuster@utanet.at</email ></address ></affiliation ><contrib >Deutsche Übersetzung</contrib ></othercredit > </authorgroup> </sect1info> <title >Anweisungen und eingebaute globale Variable</title> <para >Anweisungen sind Funktionen, die von &kommander; ausgeführt werden. Bis &kommander; über einem vollständigen Parser verfügt, werden alle Anweisungen vor dem Skript ausgeführt. Meistens ist das kein Problem. </para> <variablelist> <varlistentry> <term ><function >@dcop(<parameter >AnwendungsId</parameter >, <parameter >Objekt</parameter >, <parameter >Funktion</parameter >, <parameter >Argumente</parameter >)</function ></term> <listitem> <para >Führe einen &DCOP; Aufruf durch. @dcop(<quote >kmail</quote >, <quote >KMailIface</quote >, <quote >checkMail()</quote >, <quote ></quote >) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dcopid</function ></term> <listitem> <para >Die &DCOP;-ID des Prozesses. (kmdr-executor-@pid) </para> </listitem> </varlistentry> <varlistentry> <term ><function >@dialog(<parameter >Dialog</parameter >[,<parameter >Parameter</parameter >])</function ></term> <listitem> <para >Zeigt den bestimmten Kommander-Dialog an. Der Dialog wird im Dialogordner und im aktuellen Ordner gesucht, in dieser Reihenfolge. Das bestimmt den Aufruf von kommander-executor vor und setzt den Standardordner auf den Ordner, in dem sich die Kommander-Anwendung befindet. Parameter können im in Unix üblichen Weg oder namentlich wie z. B. <quote >Variable=Wert</quote > übergeben werden. Übergebene Parameter können im Globalbereich gefunden werden. @global(Variable) würde den <quote >Wert</quote > zurückgeben. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@env(<parameter >Umgebungsvariable</parameter >)</function ></term> <listitem> <para >Füllt die angegebene Umgebungsvariable aus. @env(PWD) setzt $PWD ein. Bitte beachten Sie, dass <quote >$</quote > ein Teil der Shell ist und nicht verwendet werden sollte. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@exec(<parameter >Befehl</parameter >)</function ></term> <listitem> <para >liefert die Ausgabe des damit ausgeführten Befehls zurück. @exec(ls -l). </para> </listitem> </varlistentry> <varlistentry> <term ><function >@execBegin ... @execEnd</function ></term> <listitem> <para >gleich wie <function >@exec</function >, unterstützt aber mehrzeilige um Ummantelungs-Skripte. Das dient für einige Skriptsprachen entweder über eine Deklaration oder mittels einer Ummantelung. </para> <itemizedlist> <listitem ><para ><function >@execBegin(php)</function ></para ></listitem> <listitem ><para ><function >@execBegin</function >#!/usr/bin/php</para ></listitem> </itemizedlist> <para >Das Erste benutzt den Namen des <acronym >PHP</acronym >-Programms. &kommander; durchsucht den Pfad PATH nach <application >php</application > und sieht, wenn es nicht gefunden wird, nach. ob es mit &kommander; außerhalb des Pfades registriert ist. Ist dies nicht der Fall, meldet es dem Benutzer, dass es nicht gefunden werden konnte. Das zweite Beispiel benutzt die klassische <quote >Ummantelung</quote >, die Vorteile aber auch Probleme bringen kann. Wenn zum Beispiel eine Beta-Version von <acronym >PHP5</acronym > in <filename >/usr/local/bin</filename > vorhanden ist, die nicht gefunden wird, weil es in <filename >/usr/bin</filename > eine gibt , wäre dies nützlich. Wird der Dialog aber von jemandem verwendet, der <acronym >PHP</acronym > nur in <filename >/usr/local/bin </filename >hat, würde es mit der Ummantelung nicht gefunden. Deshalb ist die Verwendung von Ummantelungen problematisch und die Verwendung des Programmes wird empfohlen, wenn die Dateien weitergegeben werden.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(<parameter >Variable</parameter >)</function ></term> <listitem> <para >wird mit dem Inhalt der angegebenen globalen Variable ersetzt. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@null</function ></term> <listitem> <para >Liefert Null zurück. Da &kommander; nun bei der Ausführung auf leere widgetText prüft, verhindert dies im Falle eines undefinierten Status des Bedienelementes Fehler.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@parentPid</function ></term> <listitem> <para >Die &PID; des Vaterprozesses. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@pid</function ></term> <listitem> <para >Die &PID; des Prozesses. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@readSetting(<parameter >Schlüssel</parameter >, <parameter >Standardwert</parameter >)</function ></term> <listitem> <para >liest einen Wert aus der <filename >kommanderrc</filename > </para> </listitem> </varlistentry> <varlistentry> <term ><function >@selectedWidgetText</function ></term> <listitem> <para >der ausgewählte Inhalt in einem Bedienelement, das mehrere Werte anzeigen kann, wie etwa Listen </para> </listitem> </varlistentry> <varlistentry> <term ><function >@setGlobal(<parameter >Variable</parameter >, <parameter >Wert</parameter >)</function ></term> <listitem> <para >Setzt die globale Variable auf den angegebenen Wert. </para> </listitem> </varlistentry> <varlistentry> <term ><function >@widgetText</function ></term> <listitem> <para >der Inhalt eines Bedienelementes </para> </listitem> </varlistentry> <varlistentry> <term ><function >@writeSetting(<parameter >Schlüssel</parameter >, <parameter >Wert</parameter >)</function ></term> <listitem> <para >schreibe den Wert in die <filename >kommanderrc</filename > </para> </listitem> </varlistentry> </variablelist> <sect2 id="arrays"> <title >Feldfunktionengruppe (Arrays)</title> <variablelist> <varlistentry> <term ><function >@Array.values(<parameter >Feld</parameter >)</function ></term> <listitem> <para >Gibt eine mit Zeilenschaltungen getrennte Liste aller Werte eines Feldes zurück. Kann zum Durchgehen eines Feldes verwendet werden.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.keys(<parameter >Feld</parameter >)</function ></term> <listitem> <para >Gibt eine mit Zeilenschaltungen getrennte Liste aller Schlüssel im Feld zurück.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.setValue(<parameter >Feld</parameter >, <parameter >Schlüssel</parameter >, <parameter >Wert</parameter >)</function ></term> <listitem> <para >Setzt einen Schlüssel und Wert für ein Element eines Feldes. Wenn das Feld nicht existiert, wird es erstellt.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.clear(<parameter >Feld</parameter >)</function ></term> <listitem> <para >Entfernt alle Elemente aus einem Feld.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.count(<parameter >Feld</parameter >)</function ></term> <listitem> <para >Liefert die Anzahl der Elemente in einem Feld.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.value(<parameter >Feld</parameter >,<parameter >Schlüssel</parameter >)</function ></term> <listitem> <para >Gibt den mit dem angegebenen Schlüssel verbundenen Wert zurück.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.remove(<parameter >Feld</parameter >,<parameter >Schlüssel</parameter >)</function ></term> <listitem> <para >Entfernt das Element mit dem angegeben Schlüssel aus dem Feld.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.fromString(<parameter >Feld</parameter >,<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Fügt alle Elemente der Zeichenkette dem Feld hinzu. Die Zeichenkette sollte ein <emphasis >Schlüssel\tWert\n</emphasis > Format haben."</para> </listitem> </varlistentry> <varlistentry> <term ><function >@Array.toString(<parameter >Feld</parameter >,<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >"Liefert alle Elemente im Feld im <emphasis >Schlüssel\tWert\n</emphasis > Format."</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="files"> <title >Dateifunktionengruppe</title> <variablelist> <varlistentry> <term ><function >@File.read(<parameter >Datei</parameter >)</function ></term> <listitem> <para >Liefert den Inhalt der angegebenen Datei zurück.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.write(<parameter >Datei</parameter ><parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Schreibt die angegebene Zeichenkette in eine Datei.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@File.append(<parameter >Datei</parameter ><parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Hängt die angegebene Zeichenkette an das Ende der Datei an.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="strings"> <title >Zeichenketten-Funktionengruppe</title> <variablelist> <varlistentry> <term ><function >@String.length(<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Gibt die Anzahl der Zeichen einer Zeichenkette zurück.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.contains(<parameter >Zeichenkette</parameter >,<parameter >Unterzeichenkette</parameter >)</function ></term> <listitem> <para >Prüft, ob die Zeichenkette die angegebene Teilzeichenkette enthält.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.find(<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Liefert die Position einer Teilzeichenkette in einer Zeichenkette, oder -1, wenn sie darin nicht gefunden wurde."</para> <note ><para >Dies wird in Alpha6 eine optionale ganzzahlige Startposition zum Finden weiterer Treffer haben.</para ></note> </listitem> </varlistentry> <varlistentry> <term ><function >@String.left(<parameter >Zeichenkette</parameter >, <parameter >Ganzzahl</parameter >)</function ></term> <listitem> <para >Liefert die ersten n Zeichen der Zeichenkette zurück.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.right(<parameter >Zeichenkette</parameter >, <parameter >Ganzzahl</parameter >)</function ></term> <listitem> <para >Liefert die letzten n Zeichen der Zeichenkette zurück.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.mid(<parameter >Zeichenkette</parameter >, <parameter >Ganzzahl Start</parameter >, <parameter >Ganzzahl Ende</parameter >)</function ></term> <listitem> <para >Liefert eine Teilzeichenkette aus der Zeichenkette, beginnend mit der angegebene Position.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.remove(<parameter >Zeichenkette</parameter >, <parameter >Teilzeichenkette</parameter >)</function ></term> <listitem> <para >Entfernt alle Vorkommen einer angegebenen Teilzeichenkette.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.replace(<parameter >Zeichenkette</parameter >, <parameter >Teilzeichenkette zu finden</parameter >, <parameter >Teilzeichenkette zu ersetzen</parameter >)</function ></term> <listitem> <para >Ersetzt alle Vorkommen einer angegebenen Teilzeichenkette mit dem angegebenen Ersatz.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.upper(<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Wandelt die Zeichenkette in Großbuchstaben um.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.lower(<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Wandelt die Zeichenkette in Kleinbuchstaben um.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.compare(<parameter >Zeichenkette</parameter >, <parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Vergleicht zwei Zeichenketten. Gibt 0 zurück, wenn sie gleich sind, -1, wenn die Erste kleiner ist und 1, wenn die Erste größer ist</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isEmpty(<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Prüft, ob die Zeichenkette leer ist.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@String.isNumber(<parameter >Zeichenkette</parameter >)</function ></term> <listitem> <para >Prüft, ob die Zeichenkette eine gültige Zahl ist.</para> </listitem> </varlistentry> </variablelist> </sect2> <sect2 id="builtins"> <title >Eingebaute globale Konstanten</title> <para >Eingebaute globale Konstanten werden gleich wie reguläre globale Variable mit <function >@global</function > angesprochen.</para> <variablelist> <varlistentry> <term ><function >@global(_KDDIR)</function ></term> <listitem> <para >Der Ordner, in dem sich der aktuelle Dialog befindet.</para> </listitem> </varlistentry> <varlistentry> <term ><function >@global(_NAME)</function ></term> <listitem ><para >Der Name des Dialoges</para ></listitem> </varlistentry> </variablelist> </sect2> </sect1>