<?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>