1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
<?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>[email protected]</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>
|