# Specialvärden och inbyggda globala variabler

Specialvärden är funktioner som behandlas av &kommander;. Du bör vara medveten om att ända till &kommander; har en fullständig tolk, kommer alla &kommander; specialvärden att utföras först och därefter körs skriptet. I det flesta fall är det inte något problem, men i några enstaka fall kan det vara det.

`@dcop(`pgmId`, `objekt`, `funktion`, `argument`)`

- Gör ett &DCOP;-anrop, @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

- &DCOP;-id för processen (kmdr-executor-@pid)

`@dialog(`dialogruta`[,`parametrar`])`

- Startar angiven Kommander dialogruta. Dialogrutan letas efter i katalogen med dialogrutor och i arbetskatalogen, i den ordningen. Det här lägger till anropet till Executor i början och ändrar standardkatalog till den som Kommander programmet finns i. Parametrar kan skickas som vanligt i Unix, eller så kan namngivna parametrar som variabel=värde skickas. Därefter hittar du skickade parametrar i den globala uppsättningen. @global(variabel) skulle returnera värde.

`@env(`miljövariabel`)`

- Ersätts med den angivna miljövariabeln. @env(PWD) ersätts med $PWD. Kom ihåg att $ ingår i skalet, och ska inte användas.

`@exec(`kommando`)`

- Returnerar utmatningen från körningen av det angivna kommandot. @exec(ls -l).

`@execBegin ... @execEnd`

- Samma som `@exec`, men stöder inledning med "#!" och skript med flera rader. Det fungerar med diverse skriptspråk antingen genom att deklarera dem eller genom att använda "#!".

  - `@execBegin(php)`

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

  Det första exemplet använder namnet på det körbara programmet PHP. &kommander; söker i PATH efter php och om det inte hittas kontrollerar om det är registrerat i &kommander; på en plats som inte finns i sökvägen. Om inte får användaren reda på att det inte kan hittas. Det andra exemplet använder den klassiska inledningen !#, som både kan ha fördelar men också problem. Om du till exempel har en betaversion av PHP5 i `/usr/local/bin` hittas den inte eftersom en annan hittas i `/usr/bin`, är det användbart. Om du dock distribuerar dialogrutan till någon som bara har PHP i `/usr/local/bin` hittas den inte med inledningen som används. Alltså varnas för att använda en inledning, och det rekommenderas att använda det körbara namnet om du delar filer.

`@global(`variabel`)`

- Ersätts med värdet på den angivna globala variabeln.

`@null`

- Returnerar null. Nu när Kommander kontrollerar om widgetText är tom vid körning, förhindrar detta felaktiga fel med fallet då en grafisk komponent har ett tillstånd som inte är angivet.

`@parentPid`

- Process-id för överliggande process.

`@pid`

- Process-id för processen.

`@readSetting(`nyckel`, `förvalt värde`)`

- Läser ett värde från `kommanderrc`

`@selectedWidgetText`

- Det markerade innehållet i en grafisk komponent som kan visa mer än ett värde, som listkomponenter.

`@setGlobal(`variabel`, `värde`)`

- Tilldelar den globala variabeln det angivna värdet.

`@widgetText`

- Innehållet i en grafisk komponent.

`@writeSetting(`nyckel`, `värde`)`

- Skriv värde till `kommanderrc`.

## Fältfunktionsgruppen

`@Array.values(`fält`)`

- Returnerar en lista åtskild med nyrader med alla värden i fältet. Kan användas för att gå igenom ett fält.

`@Array.keys(`fält`)`

- Returnerar en lista med alla nycklar i fältet åtskilda med nyrader.

`@Array.setValue(`fält`, `nyckel`, `värde`)`

- Anger en nyckel och värde för ett element i ett fält. Om fältet inte finns, skapas det.

`@Array.clear(`fält`)`

- Ta bort alla element från fältet.

`@Array.count(`fält`)`

- Returnera antal element i fältet.

`@Array.value(`fält`,`nyckel`)`

- Returnera värdet som hör ihop med den givna nyckeln.

`@Array.remove(`fält`,`nyckel`)`

- Ta bort elementet med den givna nyckeln från fältet.

`@Array.fromString(`fält`,`sträng`)`

- Lägger till alla element i strängen till fältet. Strängen ska har formatet nyckel\tvärde\n.

`@Array.toString(`fält`,`sträng`)`

- Returnerar alla element i fältet på formatet nyckel\tvärde\n.

## Filfunktionsgruppen

`@File.read(`fil`)`

- Returnera innehållet i den givna filen.

`@File.write(`fil`,`sträng`)`

- Skriv given sträng till en fil.

`@File.append(`fil`,`sträng`)`

- Skriv given sträng i slutet på en fil.

## Strängfunktionsgruppen

`@String.length(`sträng`)`

- Returnera antalet tecken i strängen.

`@String.contains(`sträng`,`delsträng`)`

- Kontrollera om strängen innehåller en given delsträng.

`@String.find(`sträng`)`

- Returnera en delsträngs position i strängen, eller -1 om den inte hittas.

  Det här kommer att ha ett valfritt heltal med startposition, för användning för att söka igen i version alfa 6.

`@String.left(`sträng`, `heltal`)`

- Returnerar de första n tecknen i strängen.

`@String.right(`sträng`, `heltal`)`

- Returnerar de sista n tecknen i strängen.

`@String.mid(`sträng`, `heltal start`, `heltal slut`)`

- Returnerar en delsträng av strängen, med början på angiven position.

`@String.remove(`sträng`, `delsträng`)`

- Ta bort alla förekomster av en given delsträng.

`@String.replace(`sträng`, `delsträng sök`, `delsträng ersätt`)`

- Ersätt alla förekomster av en given delsträng med en given ersättning.

`@String.upper(`sträng`)`

- Konvertera strängen till stora bokstäver.

`@String.lower(`sträng`)`

- Konvertera strängen till små bokstäver.

`@String.compare(`sträng`, `sträng`)`

- Jämför två strängar. Returnera 0 om de är lika, -1 om den första är tidigare, 1 om den första är senare.

`@String.isEmpty(`sträng`)`

- Kontrollera om strängen är tom.

`@String.isNumber(`sträng`)`

- Kontrollera om strängen är ett giltigt tal.

## Inbyggda globala variabler

Inbyggda globala variabler kan kommas åt precis som vanliga globala variabler med `@global`.

`@global(_KDDIR)`

- Katalogen den nuvarande dialogrutan är i.

`@global(_NAME)`

- Dialogrutans namn