Особливі змінні і вбудовані загальні змінні

Юрій Чорноіван

    yurchor@ukr.net

Переклад українською

# Особливі змінні і вбудовані загальні змінні

Особливі функції — це функції, які обробляються &kommander;. Вам слід пам’ятати, що до того часу, доки у &kommander; не буде повного інструменту обробки, всі спеціальні функції &kommander; буде виконано спочатку, а вже потім буде виконано скрипт. У більшості випадків це не є проблемою, але іноді проблеми виникають.

`@dcop(ідентифікатор програми, об’єкт, функція, параметри)`

  Виконати виклик &DCOP;. @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

  Ідентифікатор &DCOP; процесу. (kmdr-executor-@pid)

`@dialog(діалогове вікно[,параметри])`

  Відкриває вказане діалогове вікно Kommander. Пошук діалогового вікна буде виконано у каталозі діалогових вікон, а потім у поточному каталозі, — саме у такому порядку. Цей пошук передує виклику інструменту виконання і встановлює значення типового каталогу у значення адреси каталогу, де знаходиться Kommander. Параметри може бути передано у звичайний для Unix спосіб або передано як іменовані параметри на зразок змінна=значення. Передані параметри потім можна знайти у глобальній динамічно розподіленій області. Функція @global(змінна) поверне значення.

`@env(змінна середовища)`

  Виводить повну назву вказаної змінної середовища. @env(PWD) виводить $PWD. Пам’ятайте, що $ є частиною оболонок, цю частину використовувати не слід.

`@exec(команда)`

  повертає дані, виведенні під час виконання вказаною командою. @exec(ls -l).

`@execBegin ... @execEnd`

  те саме, що і `@exec`, але з підтримкою послідовності символів «#!» і багаторядкових скриптів. Ця послідовність слугує для запису команд скриптових мов програмування шляхом декларування або за посередництва послідовності початку скрипту, «#!».

  - `@execBegin(php)`

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

  У першому з прикладів використано назву виконуваного файла PHP. &kommander; шукатиме за змінною PATH програму php, і якщо його не буде знайдено шукатиме, чи не зареєстровано &kommander; за адресою поза вказаними у змінній PATH. Якщо файл все ж не буде знайдено, програма повідомить про це користувачеві. У другому з прикладів використовується класична послідовність початку скрипту («#!»), і це може дати певні переваги, а також призвести до проблем. Наприклад, якщо у вашій системі встановлено бета-копію PHP5 у каталог `/usr/local/bin`, який не буде знайдено, оскільки пошук проводитиметься у каталозі `/usr/bin`, цей спосіб буде корисним. Якщо ж ви надасте створене діалогове вікно комусь, у кого PHP встановлено до `/usr/local/bin`, потрібну програму буде знайдено, якщо ви скористаєтеся варіантом з «#!». Отже вам слід уникати використання «#!» і використовувати назву виконуваного файла програми, якщо ви маєте намір поширювати файли скриптів.

`@global(змінна)`

  показує значення вказаної загальної змінної.

`@null`

  Повертає null. За використання цієї функції, під час перевірки Kommander того, чи порожнє значення widgetText, під час виконання повідомлення про неіснуючі помилки буде придушено у випадку невизначеного стану віджета.

`@parentPid`

  Ідентифікатор батьківського процесу.

`@pid`

  Ідентифікатор процесу.

`@readSetting(ключ, типове значення)`

  читає значення з `kommanderrc`

`@selectedWidgetText`

  виділений вміст у віджеті, який може мати декілька значень, наприклад у віджетах списків

`@setGlobal(змінна, значення)`

  Встановлює для загальної змінної вказане значення.

`@widgetText`

  вміст віджета

`@writeSetting(ключ, значення)`

  записує значення до `kommanderrc`

## Група функцій роботи з масивами

`@Array.values(масив)`

  Повертає відокремлений символами кінця рядка список всіх значень масиву. Отриманий результат можна використати для перегляду масиву.

`@Array.keys(масив)`

  Повертає список всіх ключів масиву, розділених між собою EOL (знаком кінця рядка).

`@Array.setValue(масив, ключ, значення)`

  Встановлює ключ і значення елемента масиву. Якщо масиву ще не існує, його буде створено.

`@Array.clear(масив)`

  Вилучає всі елементи з масиву.

`@Array.count(масив)`

  Повертає кількість елементів у масиві.

`@Array.value(масив,ключ)`

  Повертає значення, пов’язане з вказаним ключем.

`@Array.remove(масив,ключ)`

  Вилучити елемент з вказаним ключем з масиву.

`@Array.fromString(масив,рядок)`

  Додає всі елементи у рядку до масиву. Рядок має бути вказано у форматі key\tvalue\n format.

`@Array.toString(масив,рядок)`

  Повертає всі елементи у масиві у форматі key\tvalue\n.

## Група функцій, пов’язаних з роботою з файлами

`@File.read(файл)`

  Повертає вміст вказаного файла.

`@File.write(файлрядок)`

  Записує вказаний рядок до файла.

`@File.append(файлрядок)`

  Додає вказаний рядок в кінець вказаного файла.

## Група функцій, пов’язаних з роботою з рядками

`@String.length(рядок)`

  Повертає кількість символів у рядку.

`@String.contains(рядок,підрядок)`

  Перевіряє, чи міститься у рядку заданий підрядок.

`@String.find(рядок)`

  Повертає позицію підрядка у рядку, або -1, якщо підрядок не буде знайдено.

  Ця функція має додатковий цілочисельний параметр для наступного знайденого входження підрядка і використовується у Alpha 6.

`@String.left(рядок, ціле число)`

  Повертає перші «ціле число» символів рядка.

`@String.right(рядок, ціле число)`

  Повертає останні «ціле число» символів рядка.

`@String.mid(рядок, початок (ціле число), кінець (ціле число))`

  Повертає підрядок рядка, починаючи з вказаної позиції.

`@String.remove(рядок, підрядок)`

  Вилучає всі елементи, які збігаються з вказаним підрядком.

`@String.replace(рядок, підрядок для пошуку, підрядок для заміни)`

  Замінює всі елементи, що збігаються з вказаним підрядком, на вказаний рядок-замінник.

`@String.upper(рядок)`

  Перетворює символи рядка на символи верхнього регістру.

`@String.lower(рядок)`

  Перетворює символи рядка на символи нижнього регістру.

`@String.compare(рядок, рядок)`

  Порівнює два рядки. Повертає 0, якщо рядки рівні, -1, якщо перший з рядків менший, і 1, якщо перший з рядків більший.

`@String.isEmpty(рядок)`

  Перевіряє, чи є рядок порожнім.

`@String.isNumber(рядок)`

  Перевіряє, чи є рядок коректним записом числа.

## Вбудовані загальні змінні

Доступ до вбудованих загальних змінних можна здійснити так само, як для звичайних загальних змінних, за допомогою `@global`.

`@global(_KDDIR)`

  Каталог, у якому знаходиться поточне діалогове вікно.

`@global(_NAME)`

  Назва діалогового вікна.