<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id="specials">
<sect1info>
<title>Comandi Speciali e Variabili Globali Integrate</title>
<authorgroup>
<author><firstname></firstname> <surname></surname> <affiliation><address> <email></email>
</address></affiliation>
</author>
<othercredit role="translator"><firstname>Samuele</firstname><surname>Kaplun</surname><affiliation><address><email>kaplun@aliceposta.it</email></address></affiliation><contrib>Traduzione del documento</contrib></othercredit>
</authorgroup>
</sect1info>
<title>Comandi Speciali e Variabili Globali Integrate</title>
<para>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ì. </para>
<variablelist>
<varlistentry>
<term><function>@dcop(<parameter>appId</parameter>, <parameter>oggetto</parameter>, <parameter>funzione</parameter>, <parameter>argomenti</parameter>)</function></term>
<listitem>
<para>Esegue una chiamata a &DCOP;. @dcop(<quote>kmail</quote>, <quote>KMailIface</quote>, <quote>checkMail()</quote>, <quote></quote>) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@dcopid</function></term>
<listitem>
<para>L'id &DCOP; del processo (kmdr-executor-@pid) </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@dialog(<parameter>finestra_di_dialogo</parameter>[,<parameter>parametri</parameter>])</function></term>
<listitem>
<para>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 <quote>variabile=valore</quote>. Puoi infine recuperare i parametri passati nell'ambiente globale. @global(variabile) ritornerebbe <quote>valore</quote>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@env(<parameter>variabileDiAmbiente</parameter>)</function></term>
<listitem>
<para>Viene espanso alla variabile d'ambiente specificata. @env(PWD) viene espanso a $PWD. Ricorda che <quote>$</quote> è parte della sintassi shell e non dovrebbe essere utilizzato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@exec(<parameter>comando</parameter>)</function></term>
<listitem>
<para>restituisce l'output dell'esecuzione del comando specificato. @exec(ls -l). </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@execBegin ... @execEnd</function></term>
<listitem>
<para>come in <function>@exec</function>, 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. </para>
<itemizedlist>
<listitem><para><function>@execBegin(php)</function></para></listitem>
<listitem><para><function>@execBegin</function>#!/usr/bin/php</para></listitem>
</itemizedlist>
<para>Il primo utilizza il nome dell'eseguibile <acronym>PHP</acronym>. &kommander; cerca nel PATH <application>php</application> 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 <quote>shebang</quote> che può portare sia benefici che alcuni problemi. È utile ad esempio, se possiedi una copia beta di <acronym>PHP5</acronym> in <filename>/usr/local/bin</filename> che non deve essere trovata perché il percorso di ricerca è <filename>/usr/bin</filename>. Se, però, distribuisce la finestra di dialogo a qualcuno che ha messo <acronym>PHP</acronym> in <filename>/usr/local/bin</filename> questo non verrà trovato quando verrà usata la shebang. Perciò utilizzate le shebang con cautela. È invece raccomandato indicare l'eseguibile se condividete i file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@global(<parameter>variabile</parameter>)</function></term>
<listitem>
<para>viene espanso nel valore della variabile globale specificata. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@null</function></term>
<listitem>
<para>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.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@parentPid</function></term>
<listitem>
<para>Il &PID; del processo genitore. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@pid</function></term>
<listitem>
<para>Il &PID; del processo. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@readSetting(<parameter>chiave</parameter>, <parameter>valorePredefinito</parameter>)</function></term>
<listitem>
<para>legge un valore da <filename>kommanderrc</filename> </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@selectedWidgetText</function></term>
<listitem>
<para>il contenuto selezionato di un widget che può visualizzare più di un valore, come i widget lista </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@setGlobal(<parameter>variabile</parameter>, <parameter>valore</parameter>)</function></term>
<listitem>
<para>Imposta la variabile globale al valore specificato. </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@widgetText</function></term>
<listitem>
<para>il contenuto di un widget </para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@writeSetting(<parameter>chiave</parameter>, <parameter>valore</parameter>)</function></term>
<listitem>
<para>scrive il valore in <filename>kommanderrc</filename> </para>
</listitem>
</varlistentry>
</variablelist>
<sect2 id="arrays">
<title>Gruppo delle Funzioni per Array</title>
<variablelist>
<varlistentry>
<term><function>@Array.values(<parameter>array</parameter>)</function></term>
<listitem>
<para>Restituisce una lista separata da EOL di tutti i valori contenuti nell'array. Può essere utilizzato per scorrere attraverso l'array.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.keys(<parameter>array</parameter>)</function></term>
<listitem>
<para>Restituisce un elenco separato da fine riga (EOL) di tutte le chiavi del vettore.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.setValue(<parameter>array</parameter>, <parameter>chiave</parameter>, <parameter>valore</parameter>)</function></term>
<listitem>
<para>Imposta una chiave ed un valore per un elemento di un array. Se l'array non esiste, viene creato.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.clear(<parameter>array</parameter>)</function></term>
<listitem>
<para>Rimuove tutti gli elementi dal vettore.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.count(<parameter>array</parameter>)</function></term>
<listitem>
<para>Restituisce il numero di elementi nel vettore.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.value(<parameter>array</parameter>,<parameter>chiave</parameter>)</function></term>
<listitem>
<para>Restituisce il valore associato alla chiave indicata.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.remove(<parameter>array</parameter>,<parameter>chiave</parameter>)</function></term>
<listitem>
<para>Rimuove l'elemento con la chiave indicata dall'array.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.fromString(<parameter>array</parameter>,<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Aggiunge tutti gli elementi nella stringa nell'array. La stringa dovrebbe essere nel formato <emphasis>chiave\tvalore\n</emphasis>."</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@Array.toString(<parameter>array</parameter>,<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Restituisce tutti gli elementi nell'array nel formato <emphasis>chiave\t\n</emphasis>."</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="files">
<title>Gruppo di Funzioni per File</title>
<variablelist>
<varlistentry>
<term><function>@File.read(<parameter>file</parameter>)</function></term>
<listitem>
<para>Restituisce il contenuto del file indicato.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@File.write(<parameter>file</parameter><parameter>stringa</parameter>)</function></term>
<listitem>
<para>Scrive la stringa data su un file.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@File.append(<parameter>file</parameter><parameter>stringa</parameter>)</function></term>
<listitem>
<para>Aggiunge la stringa data alla fine del file.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="strings">
<title>Gruppo di Funzioni per Stringhe</title>
<variablelist>
<varlistentry>
<term><function>@String.length(<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Restituisce il numero di caratteri nella stringa.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.contains(<parameter>stringa</parameter>,<parameter>sottostringa</parameter>)</function></term>
<listitem>
<para>Controlla se la stringa contiene la sottostringa data.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.find(<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Restituisce la posizione di una sottostringa nella stringa, o -1 se non trovata."</para>
<note><para>Questo comando avrà un altro parametro intero opzionale indicante la posizione iniziale da cui cercare nella versione Alpha 6.</para></note>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.left(<parameter>stringa</parameter>, <parameter>int</parameter>)</function></term>
<listitem>
<para>Restituisce i primi n caratteri della stringa.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.right(<parameter>stringa</parameter>, <parameter>int</parameter>)</function></term>
<listitem>
<para>Restituisce gli ultimi n caratteri della stringa.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.mid(<parameter>stringa</parameter>, <parameter>int inizio</parameter>, <parameter>int fine</parameter>)</function></term>
<listitem>
<para>Restituisce una sottostringa della stringa, iniziando dalla posizione data.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.remove(<parameter>stringa</parameter>, <parameter>sottostringa</parameter>)</function></term>
<listitem>
<para>Rimuove tutte le occorrenze di una data sottostringa.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.replace(<parameter>stringa</parameter>, <parameter>sottostringa_trova</parameter>, <parameter>sottostringa_sostituisci</parameter>)</function></term>
<listitem>
<para>Sostituisce tutte le occorrenze di una data sottostringa con un'altra fornita.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.upper(<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Converte la stringa in maiuscolo.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.lower(<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Converte la stringa in minuscolo.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.compare(<parameter>stringa</parameter>, <parameter>stringa</parameter>)</function></term>
<listitem>
<para>Confronta due stringhe. Restituisce 0 se sono uguali, -1 se la prima è più bassa, 1 se la prima è più alta</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.isEmpty(<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Controlla se la stringa è vuota.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@String.isNumber(<parameter>stringa</parameter>)</function></term>
<listitem>
<para>Controlla se la stringa è un numero valido.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="builtins">
<title>Variabili Globali Integrate</title>
<para>L'accesso alle variabili globali integrate è analogo alle variabili globali regolari con <function>@global</function>.</para>
<variablelist>
<varlistentry>
<term><function>@global(_KDDIR)</function></term>
<listitem>
<para>La cartella in cui si trova la finestra di dialogo corrente.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function>@global(_NAME)</function></term>
<listitem><para>Il nome della finestra di dialogo</para></listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>