# Comandi Speciali e Variabili Globali Integrate

I comandi speciali sono funzioni che vengono processate da &kommander;. Sappi che fino a quando &kommander; non avrà un parser completo tutti i comandi speciali saranno eseguiti prima che venga eseguito lo script. In molti casi questo non è un problema, ma talvolta sì.

`@dcop(`appId`, `oggetto`, `funzione`, `argomenti`)`

- Esegue una chiamata a &DCOP;. @dcop(kmail, KMailIface, checkMail(), )

`@dcopid`

- L'id &DCOP; del processo (kmdr-executor-@pid)

`@dialog(`finestra_di_dialogo`[,`parametri`])`

- Richiama la finestra di dialogo di Kommander specificata. Le finestre di dialogo sono ricercate nella cartella delle finestre di dialogo e nella cartella corrente - in quest'ordine. Ciò mette in sospeso la chiamata all'esecutore ed imposta la cartella predefinita a quella in cui si trova l'applicazione di Kommander. I parametri possono essere passati nell'usuale maniera Unix o puoi passare dei parametri per nome come in variabile=valore. Puoi infine recuperare i parametri passati nell'ambiente globale. @global(variabile) ritornerebbe valore.

`@env(`variabileDiAmbiente`)`

- Viene espanso alla variabile d'ambiente specificata. @env(PWD) viene espanso a $PWD. Ricorda che $ è parte della sintassi shell e non dovrebbe essere utilizzato.

`@exec(`comando`)`

- restituisce l'output dell'esecuzione del comando specificato. @exec(ls -l).

`@execBegin ... @execEnd`

- come in `@exec`, ma supporta gli script shebang (cioè che cominciano, ad esempio, con #!/bin/sh) e su più righe. Questo è utile in diversi linguaggi di scripting sia dichiarandoli o utilizzando una shebang.

  - `@execBegin(php)`

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

  Il primo utilizza il nome dell'eseguibile PHP. &kommander; cerca nel PATH php e se non lo trova verifica se è registrato con &kommander; in una posizione al di fuori del tuo path. Se non è così notifica all'utente che non può essere trovato. Il secondo esempio utilizza la classica shebang che può portare sia benefici che alcuni problemi. È utile ad esempio, se possiedi una copia beta di PHP5 in `/usr/local/bin` che non deve essere trovata perché il percorso di ricerca è `/usr/bin`. Se, però, distribuisce la finestra di dialogo a qualcuno che ha messo PHP in `/usr/local/bin` questo non verrà trovato quando verrà usata la shebang. Perciò utilizzate le shebang con cautela. È invece raccomandato indicare l'eseguibile se condividete i file.

`@global(`variabile`)`

- viene espanso nel valore della variabile globale specificata.

`@null`

- Restituisce null. Ora che Kommander verifica i widget vuoti durante l'esecuzione questo comando preverrà la segnalazione errata di errori nel caso della non impostazione dello stato di un widget.

`@parentPid`

- Il &PID; del processo genitore.

`@pid`

- Il &PID; del processo.

`@readSetting(`chiave`, `valorePredefinito`)`

- legge un valore da `kommanderrc`

`@selectedWidgetText`

- il contenuto selezionato di un widget che può visualizzare più di un valore, come i widget lista

`@setGlobal(`variabile`, `valore`)`

- Imposta la variabile globale al valore specificato.

`@widgetText`

- il contenuto di un widget

`@writeSetting(`chiave`, `valore`)`

- scrive il valore in `kommanderrc`

## Gruppo delle Funzioni per Array

`@Array.values(`array`)`

- Restituisce una lista separata da EOL di tutti i valori contenuti nell'array. Può essere utilizzato per scorrere attraverso l'array.

`@Array.keys(`array`)`

- Restituisce un elenco separato da fine riga (EOL) di tutte le chiavi del vettore.

`@Array.setValue(`array`, `chiave`, `valore`)`

- Imposta una chiave ed un valore per un elemento di un array. Se l'array non esiste, viene creato.

`@Array.clear(`array`)`

- Rimuove tutti gli elementi dal vettore.

`@Array.count(`array`)`

- Restituisce il numero di elementi nel vettore.

`@Array.value(`array`,`chiave`)`

- Restituisce il valore associato alla chiave indicata.

`@Array.remove(`array`,`chiave`)`

- Rimuove l'elemento con la chiave indicata dall'array.

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

- Aggiunge tutti gli elementi nella stringa nell'array. La stringa dovrebbe essere nel formato chiave\tvalore\n."

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

- Restituisce tutti gli elementi nell'array nel formato chiave\t\n."

## Gruppo di Funzioni per File

`@File.read(`file`)`

- Restituisce il contenuto del file indicato.

`@File.write(`file``stringa`)`

- Scrive la stringa data su un file.

`@File.append(`file``stringa`)`

- Aggiunge la stringa data alla fine del file.

## Gruppo di Funzioni per Stringhe

`@String.length(`stringa`)`

- Restituisce il numero di caratteri nella stringa.

`@String.contains(`stringa`,`sottostringa`)`

- Controlla se la stringa contiene la sottostringa data.

`@String.find(`stringa`)`

- Restituisce la posizione di una sottostringa nella stringa, o -1 se non trovata."

  Questo comando avrà un altro parametro intero opzionale indicante la posizione iniziale da cui cercare nella versione Alpha 6.

`@String.left(`stringa`, `int`)`

- Restituisce i primi n caratteri della stringa.

`@String.right(`stringa`, `int`)`

- Restituisce gli ultimi n caratteri della stringa.

`@String.mid(`stringa`, `int inizio`, `int fine`)`

- Restituisce una sottostringa della stringa, iniziando dalla posizione data.

`@String.remove(`stringa`, `sottostringa`)`

- Rimuove tutte le occorrenze di una data sottostringa.

`@String.replace(`stringa`, `sottostringa_trova`, `sottostringa_sostituisci`)`

- Sostituisce tutte le occorrenze di una data sottostringa con un'altra fornita.

`@String.upper(`stringa`)`

- Converte la stringa in maiuscolo.

`@String.lower(`stringa`)`

- Converte la stringa in minuscolo.

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

- Confronta due stringhe. Restituisce 0 se sono uguali, -1 se la prima è più bassa, 1 se la prima è più alta

`@String.isEmpty(`stringa`)`

- Controlla se la stringa è vuota.

`@String.isNumber(`stringa`)`

- Controlla se la stringa è un numero valido.

## Variabili Globali Integrate

L'accesso alle variabili globali integrate è analogo alle variabili globali regolari con `@global`.

`@global(_KDDIR)`

- La cartella in cui si trova la finestra di dialogo corrente.

`@global(_NAME)`

- Il nome della finestra di dialogo