# Erid ja sisseehitatud globaalsed muutujad

Marek
Laane

    bald@smail.ee

Tõlge eesti keelde

# Erid ja sisseehitatud globaalsed muutujad

Erid on &kommander;i töödeldavad funktsioonid. Tuleks arvestada, et &kommander;i võimsa parsija tõttu käivitatakse esmalt kõik &kommander;i erid ja alles seejärel skript. Enamasti ei kujuta see endast probleemi, kuid igatahese tasuks see kõrva taha panna.

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

  Sooritab &DCOP; väljakutse. @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

  Protsessi &DCOP; ID. (kmdr-executor-@pid)

`@dialog(`dialoog`[,`parameetrid`])`

  Käivitab määratud Kommanderi dialoogi. Seda otsitakse esmalt dialoogi ja seejärel aktiivses kataloogis. Sellega kutsutakse välja Executor ning määratakse vaikekataloogiks Kommanderi rakenduse kataloog. Parameetreid võib edastada UNIX-i tavapärasel viisil või siis anda nimega parameetrid, näiteks muutuja=väärtus. Edastatud parameetrid leiab seejärel globaalsest puhvrist. @global(muutuja) tagastab väärtuse.

`@env(`keskkonnaMuutuja`)`

  Kasutab määratud keskkonnamuutujat. @enc(PWD) näiteks kasutab $PWD. Arvesta, et $ kuulub shelli ja seda ei tohi siin pruukida.

`@exec(`käsk`)`

  Tagastab määratud käsu käivitamise väljundi. @exec(ls -l)

`@execBegin ... @execEnd`

  Sama, mis `@exec`, kuid toetab ka mitmerealisi skripte. See on mõistlik mitmete skriptikeelte puhul.

  - `@execBegin(php)`

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

  Esimene kasutab PHP käivitatava faili nime. &kommander; otsib otsinguteelt (PATH) php-d ja kui ei leia, uurib, ega see pole &kommander;is määratud asuma kuskil mujal kui sinu otsinguteel. Kui mitte, siis antakse kasutajale teada, et seda ei leitud. Teine võimalus kasutab tavapärast kupatust (shebang), millel on omad plussid, kuid ka omad miinused. Kui sul on näiteks PHP5 koopia asukohas `/usr/local/bin`, siis seda ei leita, sest otsitakse ainult asukohast `/usr/bin`. Seepärast on kupatuse kasutamine kahe otsaga asi ning eriti juhul, kui sa faile ja dialooge ka teistega jagada soovid, ei oleks seda mõttekas kasutada.

`@global(`muutuja`)`

  Kasutab määratud globaalse muutuja väärtust.

`@null`

  Tagastab nulli. Kui näiteks Kommander kontrollib käivitamisel tühja widgetText'i, väldib see vigu.

`@parentPid`

  Eellasprotsessi &PID;.

`@pid`

  Protsessi &PID;.

`@readSetting(`võti`, `vaikeVäärtus`)`

  Loeb väärtuse failist `kommanderrc`.

`@selectedWidgetText`

  Vidina valitud sisu, mis võib näidata enam kui üht väärtust, näiteks vidinate loendit.

`@setGlobal(`muutuja`, `väärtus`)`

  Määrab globaalsele muutujale antud väärtuse.

`@widgetText`

  Vidina sisu.

`@writeSetting(`võti`, `väärtus`)`

  Kirjutab väärtuse faili `kommanderrc`.

## Massiivifunktsioonide grupp

`@Array.values(`massiiv`)`

  Tagastab massiivi kõigi väärtuste reavahetusmärkidega eraldatud loendi. Kasulik näiteks massiiviga tutvumisel.

`@Array.keys(`massiiv`)`

  Tagastab massiivi kõigi võtmete reavahetusmärkidega eraldatud loendi.

`@Array.setValue(`massiiv`, `võti`, `väärtus`)`

  Määrab massiivi elemendile võtme ja väärtuse. Kui massiivi ei ole, see luuakse.

`@Array.clear(`massiiv`)`

  Eemaldab kõik elemendid massiivist.

`@Array.count(`massiiv`)`

  Tagastab massiivi elementide arvu.

`@Array.value(`massiiv`,`võti`)`

  Tagastab antud võtmega seostatud väärtuse.

`@Array.remove(`massiiv`,`võti`)`

  Eemaldab antud võtmega elemendi massiivist.

`@Array.fromString(`massiiv`,`string`)`

  Lisab stringi kõik elemendid massiivi. String peab olema kujul võti\tväärtus\n."

`@Array.toString(`massiiv`,`string`)`

  "Tagastab massiivi kõik elemendid kujul võti\tväärtus\n."

## Failifunktsioonide grupp

`@File.read(`fail`)`

  Tagastab antud faili sisu.

`@File.write(`fail``string`)`

  Salvestab antud stringi faili.

`@File.append(`fail``string`)`

  Lisab antud stringi faili lõppu.

## Stringifunktsioonide grupp

`@String.length(`string`)`

  Tagastab sümbolite arvu stringis.

`@String.contains(`string`,`alamstring`)`

  Kontrollib, kas string sisaldab antud alamstringi.

`@String.find(`string`)`

  Tagastab alamstringi asukoha stringis või -1, kui seda ei leita.

  Järgmises versioonis saab sellele lisada ka täisarvu, mis tähistab järgmise otsingu alguskohta.

`@String.left(`string`, `täisarv`)`

  Tagastab stringi esimesed n sümbolit.

`@String.right(`string`, `täisarv`)`

  Tagastab stringi viimased n sümbolit.

`@String.mid(`string`, `täisarv start`, `täisarv end`)`

  Tagastab stringi alamstringi alates antud asukohast.

`@String.remove(`string`, `alamstring`)`

  Eemaldab kõik antud alamstringid.

`@String.replace(`string`, `alamstring find`, `alamstring replace`)`

  Asendab kõik antud alamstringid antud asendusega.

`@String.upper(`string`)`

  Muudab stringi suurtäheliseks.

`@String.lower(`string`)`

  Muudab stringi väiketäheliseks.

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

  Võrdleb kaht stringi. Tagastab 0, kui need on võrdsed, -1, kui esimene on madalam ja 1, kui esimene on kõrgem.

`@String.isEmpty(`string`)`

  Kontrollib, kas string on tühi.

`@String.isNumber(`string`)`

  Kontrollib, kas string on kehtiv arv.

## Sisseehitatud globaalsed muutujad

Sisseehitatud globaalseid muutujaid saab kasutada nagu tavalisi globaalseid muutujaid, andes nende ees `@global`.

`@global(_KDDIR)`

  Aktiivse dialoogi kataloog.

`@global(_NIMI)`

  Dialoogi nimi.