# Specielle og indbyggede globale variable

Specielle er funktioner der behandles af &kommander;. Du skal være opmærksom på at indtil &kommander; har en fuldstændig fortolker, vil alle specielle eksekveres først og derefter eksekveres scriptet. I de fleste tilfælde er dette ikke et problem, men somme tider opstår der problemer.

`@dcop(`appId`, `objekt`, `funktion`, `argumenter`)`

- Lav et &DCOP;-kald. @DCOP(kmail, KMailIface, checkMail(), )

`@dcopid`

- Processens &DCOP;-ID (kmdr-executor-@pid)

`@dialog(`dialog`[,`parametre`])`

- Starter den givne kommander-dialog. Dialogen søges i dialogkataloget og i det aktuelle katalog, i den rækkefølge. Dette kommer før kaldet til executoren og sætter standardkataloget til den Kommander-programmet findes i. Parametre kan overføres i sædvanlig UNIX-stil eller overføres som variabel=værdi. Du kan derefter finde overførte parametre i den globale samling. @global(variable) ville returnere værdi.

`@env(`miljøVariabel`)`

- Udvides til den givne miljøvariabel. @env(PWD) udvides til $PWD. Husk at $ er en del af skallen og ikke må bruges.

`@exec(`kommando`)`

- returnerer uddata ved eksekveringen af den givne kommando @exec(ls -l).

`@execBegin ... @execEnd`

- ligesom `@exec`, men understøtter shebang og multilinje scripter. Dette servicerer forskellige scriptsprog, enten ved at erklære dem eller ved at bruge en shebang.

  - `@execBegin(php)`

  - `@execBegin`#!/usr/bin/php

  Den første bruger navnet på PHP-kørbare. &kommander; søger i PATH efter php og ser efter et sted uden din sti, om den er registreret i &kommander; hvis ikke den findes. Hvis ikke før den brugeren opmærksom på at den ikke blev fundet. Det andet eksempel bruger den klassiske shebang som kan have nogle fordele og problemer. Hvis du har en betaudgave af PHP5 i f.eks. `/usr/local/bin` som ikke ville blive fundet fordi der søges i `/usr/bin` er dette brugbart. Hvis du derimod distribuerer dialogen til en som kun har PHP i `/usr/local/bin` ville den ikke blive fundet når der bruges en shebang. Så at bruge shebang skal tages med forbehold og det anbefales at bruge den eksekverbare hvis du deler filer.

`@global(`variabel`)`

- udvides til værdien af den givne globale variabel.

`@null`

- Returnerer null. Nu da Kommander undersøger for tom widgetText på kørselstidspunktet, forebygger dette, fejlagtige fejl hvis en kontrol har en tilstand der ikke er sat.

`@parentPid`

- Forældreprocessens &PID;.

`@pid`

- Processens &PID;.

`@readSetting(`nøgle`, `standardVærdi`)`

- læser en værdi fra `kommanderrc`

`@selectedWidgetText`

- det markerede indhold i en kontrol som kan vise mere end en værdi, som listekontroller

`@setGlobal(`variabel`, `værdi`)`

- Sætter den globale variabel til den givne værdi.

`@widgetText`

- en kontrols indhold

`@writeSetting(`nøgle`, `værdi`)`

- skriv værdi til `kommanderrc`

## Array-funktionsgruppe

`@Array.values(`array`)`

- Returnerer EOL-adskilt liste af alle værdier i arrayet. Kan bruges til at gennemgå et array.

`@Array.keys(`array`)`

- Returnerer en EOL-adskilt liste af alle nøgler i arrayet.

`@Array.setValue(`array`, `nøgle`, `værdi`)`

- Sætter en nøgle og en værdi til et element i et array. Eksisterer der ikke et array i forvejen, oprettes der et.

`@Array.clear(`array`)`

- Fjerner alle elementer i et array.

`@Array.count(`array`)`

- Returnerer antallet af elementer i arrayet.

`@Array.value(`array`,`nøgle`)`

- Returnerer værdie associeret med den givne nøgle.

`@Array.remove(`array`,`nøgle`)`

- Fjern element med given nøgle fra arrayet.

`@Array.fromString(`array`,`streng`)`

- Tilføjer alle elementer i strengen til arrayet. Strengen skal have formatet:nøgle\tværdi\n."

`@Array.toString(`array`,`streng`)`

- "Returnerer alle elementer i array i nøgle\tværdi\n format."

## Filfunktionsgruppe

`@File.read(`fil`)`

- Returnerer indhold af den givne fil.

`@File.write(`fil``streng`)`

- Skriv given streng til en fil.

`@File.append(`fil``streng`)`

- Tilføj given streng til slutningen af en fil.

## Strengfunktionsgruppe

`@String.length(`streng`)`

- Returnerer antal tegn i strengen.

`@String.contains(`streng`,`understreng`)`

- Undersøger om strengen indeholder den givne understreng.

`@String.find(`streng`)`

- Returnerer en understrengs position i strengen eller -1 hvis den ikke findes."

  Dette får en valgfri startposition angivet med et heltal til søgning efter næste, i alfa 6.

`@String.left(`streng`, `heltalt`)`

- Returnerer første n tegn i strengen.

`@String.right(`streng`, `heltal`)`

- Returnerer sidste n tegn i strengen.

`@String.mid(`streng`, `heltal startposition`, `heltal slutposition`)`

- Returnerer strengens understreng, begynder fra given position.

`@String.remove(`streng`, `understreng`)`

- Fjerner alle forekomster af den givne understreng.

`@String.replace(`streng`, `understreng find`, `understreng erstat`)`

- Erstatter alle forekomster af en given understreng med den givne erstatningsstreng.

`@String.upper(`streng`)`

- Konverterer strengen til store bogstaver.

`@String.lower(`streng`)`

- Konverterer strengen til små bogstaver.

`@String.compare(`streng`, `streng`)`

- Sammenligner to strenge. Returnerer 0, hvis de er ens, -1 hvis den første er mindst, 1 hvis den første er størst.

`@String.isEmpty(`streng`)`

- Undersøger om strengen er tom.

`@String.isNumber(`streng`)`

- Undersøger om strengen er et gyldigt tal.

## Indbyggede globale

Indbyggede globale tilgås ligesom almindelige globale variable med `@global`.

`@global(_KDDIR)`

- Katalogen den aktuelle dialog er i.

`@global(_NAME)`

- Navnet på dialogen