<?xml version="1.0" encoding="utf-8"?>
<sect2 id="usage-execution">
  <title>Quale azione dovrebbe essere eseguita ?</title>
  <para>Con molta probabilità si desidera che la propria azione esegua qualcosa. E, come dato di fatto, avere qualcosa da eseguire è una delle poche condizioni richieste perché una azione sia considerata valida.</para>
  <para>Come abbiamo già visto, il comando da eseguire viene configurato nella pagina<guilabel>Comando</guilabel>.</para>
  <para>Questo comando può prendere argomenti, i quali a loro volta possono essere parametri integrati. Questi parametri saranno espansi al runtime,  con valori che dipenderanno dagli elementi correntemente selezionati.</para>

  <sect3 id="usage-execution-parameters">
    <title>Parametri disponibili</title>
    <para>Nella pagina <guilabel>Comando</guilabel>, fare clic sul pulsante <guilabel>Legenda</guilabel> per vedere l'elenco dei parametri disponibili.</para>
    <figure id="cact-FIG-legend">
      <title>Elenco dei parametri disponibili</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/cact-legend.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase>Mostra l'elenco dei parametri disponibili.</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </figure>
    <tip>
      <para>Il pulsante <guibutton>Legenda</guibutton> ha una duplice azione: fare clic una volta per mostrare la finestra di dialogo <guilabel>Legenda dei parametri</guilabel>; fare clic una seconda volta per nasconderla.</para>
    </tip>
    <note>
      <para>La parola « <guilabel>primo</guilabel> » potrebbe essere fuorviante in quanto si riferisce solo all'elenco degli elementi selezionati forniti internamente dal file manager al plugin <productname>Caja-Actions</productname>.</para>
      <para>In particolare, esso non ha <emphasis>niente a che fare</emphasis> con la selezione visiva che potete aver fatto nella finestra del file manager. E, infatti, quale possa essere l'elemento " <guilabel>primo</guilabel> " selezionato in una selezione multipla è assolutamente indefinito e piuttosto imprevedibile.</para>
    </note>
  </sect3>

  <sect3 id="usage-execution-work">
    <title>Dove dovrebbe essere eseguita l'azione ?</title>
    <para>La vostra azione può essere eseguita in una particolare cartella di lavoro.</para>
    <para>Si può specificarla nella scheda <guilabel>Comando</guilabel>, nell'area <guilabel>Cartella di lavoro</guilabel>, o facendo clic su <guibutton>Esplora</guibutton> per selezionare una cartella sul file system.</para>
    <figure id="cact-FIG-work-dir-frame">
      <title>Cornice della cartella di lavoro</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/cact-working-directory-frame.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase>Focus sulla cornice di selezione della cartella di lavoro.</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </figure>
    <para>La cartella di lavoro ha come valore predefinito <literal>%d</literal>, che esegue il comando nella cartella base del (primo) elemento selezionato.</para>
    <para>Nel caso particolare del parametro <literal>%d</literal>, L'elemento « <guilabel>primo</guilabel> » non è molto importante perché è molto probabile che tutti gli elementi selezionati siano collocati nella stessa cartella base.</para>
  </sect3>

  <sect3 id="usage-execution-how">
    <title>Come dovrebbe essere eseguita l'azione ?</title>
    <para>Oltre a configurare le condizioni, la selezione deve essere soddisfatta affinché la vostra azione sia mostrata nei menù del file manager, <productname>Caja-Actions</productname> consente di configurare esattamente come verrà eseguito il vostro comando.</para>
    <para>Fare clic sulla scheda <guilabel>Esecuzione</guilabel> per mostrare la pagina che consentirà di configurare l'esecuzione del vostro comando.</para>
    <figure id="cact-FIG-execution">
      <title>Configurazione delle modalità di esecuzione</title>
      <screenshot>
        <mediaobject>
          <imageobject>
            <imagedata fileref="figures/cact-execution-tab.png" format="PNG"/>
          </imageobject>
          <textobject>
            <phrase>Mostra come configurare le modalità di esecuzione di un comando.</phrase>
          </textobject>
        </mediaobject>
      </screenshot>
    </figure>

    <sect4 id="usage-execution-how-mode">
      <title>Modalità di esecuzione</title>
      <figure id="cact-FIG-execution-mode">
        <title>Configurazione della modalità di esecuzione</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/cact-exec-mode-frame.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase>Focus sulla cornice della modalità di esecuzione.</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </figure>
      <para>La modalità di esecuzione del vostro comando può essere scelta tra questi valori:</para>
      <variablelist>
        <varlistentry>
          <term>Normale</term>
          <listitem>
            <para>Avvia il comando come interfaccia utente grafica standard.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Terminale</term>
          <listitem>
            <para>Avvia il terminale preferito dell'ambiente desktop, e vi esegue all'interno il comando.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Incorporato</term>
          <listitem>
            <para>Fa uso di una speciale caratteristica del file manager che può consentire ad un terminale di essere eseguito al suo interno.</para>
            <para>Poiché <productname>Caja</productname> non possiede questa caratteristica, questa opzione equivale all'opzione <literal>Terminale</literal>.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>Mostra l'output</term>
          <listitem>
            <para>Avvia il terminale preferito dell'ambiente desktop e vi esegue il comando. Alla fine, saranno visualizzati i flussi standard (stdout, stderr).</para>
          </listitem>
        </varlistentry>
      </variablelist>
      <para>La modalità di esecuzione di un comando ha come valore predefinito <literal>Normale</literal>. Cioè il comando viene eseguito senza alcun pre- o post- trattamento particolare.</para>
    </sect4>

    <sect4 id="usage-execution-how-notify">
      <title>Notifica di avvio</title>
      <figure id="cact-FIG-startup-mode">
        <title>Configurazione delle modalità di avvio</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/cact-startup-mode-frame.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase>Focus sulla cornice della modalità di Avvio</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </figure>
      <para>Se la modalità di esecuzione del comando è <literal>Normale</literal> e se si sa che l'applicazione invierà un messaggio <literal>rimuovi</literal> con la variabile di ambiente <envar>DESKTOP_STARTUP_ID</envar> impostata, spuntare la casella <guilabel>Notifica di avvio</guilabel>.</para>
      <para>Consultare <ulink url="http://www.freedesktop.org/Standards/startup-notification-spec" type="http"><citetitle>Specifica del protocollo della notifica di avvio</citetitle></ulink> per maggiori dettagli.</para>
    </sect4>

    <sect4 id="usage-execution-how-class">
      <title>Classe di finestra</title>
      <para>Se la modalità di esecuzione del comando è <literal>Normale</literal> e se si sa che l'applicazione mapperà almeno una finestra con un dato nome di classe, inserire quel nome nel campo <guilabel>Avvio della classe Window Manager</guilabel>.</para>
      <para>Consultare <ulink url="http://www.freedesktop.org/Standards/startup-notification-spec" type="http"><citetitle>Specifica del protocollo della notifica di avvio</citetitle></ulink> per maggiori dettagli.</para>
    </sect4>

    <sect4 id="usage-execution-how-user">
      <title>Proprietario dell'esecuzione</title>
      <figure id="cact-FIG-execute-as">
        <title>Configurazione del proprietario dell'esecuzione</title>
        <screenshot>
          <mediaobject>
            <imageobject>
              <imagedata fileref="figures/cact-execute-as-frame.png" format="PNG"/>
            </imageobject>
            <textobject>
              <phrase>Focus sulla cornice <guilabel>Esegui come</guilabel>.</phrase>
            </textobject>
          </mediaobject>
        </screenshot>
      </figure>
      <para>Inserire nel campo <guilabel>Esegui come utente</guilabel> il nome utente o l'<acronym>UID</acronym> dell'utente per il quale verrà eseguito il vostro comando.</para>
      <para>Se non si inserisce nulla in questo campo, il comando verrà eseguito come utente corrente.</para>
    </sect4>

    <sect4 id="usage-execution-how-singular">
      <title>Esecuzioni multiple</title>
      <para>Si può desiderare che il vostro comando sia eseguito una sola volta, fornendogli l'elenco degli elementi selezionati come argomento.</para>
      <para>Oppure preferire che il vostro comando sia ripetuto per ciascun elemento selezionato, fornendo per ciascuna esecuzione un diverso elemento come argomento.</para>
      <para>Al momento, <productname>Caja-Actions</productname> gestisce automaticamente questi due comportamenti, a seconda della forma e del numero dei parametri negli argomenti del comando.</para>
      <para>Sebbene alcuni parametri non dipendono dal conteggio della selezione (<abbrev>per esempio</abbrev> « <literal>%c</literal> », il contatore della selezione stesso), molti hanno due declinazioni:</para>
      <itemizedlist>
        <listitem>
          <para>una « singolare », <abbrev>per esempio</abbrev> « <literal>%b</literal> », il nome-base dell'elemento selezionato;</para>
        </listitem>
        <listitem>
          <para>una « plurale », <abbrev>per esempio</abbrev> « <literal>%B</literal> », l'elenco separato da spazi dei nomi-base degli elementi selezionati.</para>
        </listitem>
      </itemizedlist>
      <para>Quando la selezione è vuota o contiene solo un elemento, da questo punto di vista, queste due forme sono esattamente equivalenti.</para>
      <para>Quando la selezione contiene più di un elemento:</para>
      <itemizedlist>
        <listitem>
          <para>Se il primo parametro rilevante è di forma singolare, <productname>Caja-Actions</productname> considererà che il comando è capace solo di gestire un solo oggetto alla volta, e quindi che deve essere eseguito una volta per ciascun elemento selezionato;</para>
        </listitem>
        <listitem>
          <para>al contrario, se il primo parametro rilevante è di forma plurale, <productname>Caja-Actions</productname> considererà che il comando è capace di gestire un elenco di elementi, e quindi il comando sarà eseguito una volta soltanto;</para>
        </listitem>
        <listitem>
          <para>Se tutti i parametri trovati sono irrilevanti, <productname>Caja-Actions</productname> considera che il comando debba essere eseguito una volta soltanto.</para>
        </listitem>
      </itemizedlist>
      <table id="cact-TAB-multiple-execution" frame="all" tocentry="1">
        <title>Caratterizzazione dei parametri <abbrev>rispetto all'</abbrev> esecuzione multipla</title>
        <tgroup cols="5">
          <colspec align="center" colwidth="*"/>
          <colspec align="left" colwidth="5*"/>
          <colspec align="center" colwidth="*" colname="c3"/>
          <colspec align="center" colwidth="*"/>
          <colspec align="center" colwidth="*" colname="c5"/>
          <thead>
            <row>
              <entry>Parametro</entry>
              <entry>Descrizione</entry>
              <entry namest="c3" nameend="c5">Ripetizione</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry><literal>%b</literal></entry>
              <entry>(primo) nome-base</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%B</literal></entry>
              <entry>elenco separato da spazi di nomi-base</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%c</literal></entry>
              <entry>conteggio degli elementi selezionati</entry>
              <entry/>
              <entry>irrilevante</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%d</literal></entry>
              <entry>(prima) cartella base</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%D</literal></entry>
              <entry>elenco separato da spazi delle cartelle base di ciascun elemento selezionato</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%f</literal></entry>
              <entry>(primo) nome file</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%F</literal></entry>
              <entry>elenco separato da spazi dei nomi file selezionati</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%h</literal></entry>
              <entry>nome host del (primo) URI</entry>
              <entry/>
              <entry>irrilevante</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%m</literal></entry>
              <entry>Tipo mime del (primo) elemento selezionato.</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%M</literal></entry>
              <entry>elenco separato da spazi dei tipi mime degli elementi selezionati</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%n</literal></entry>
              <entry>nome utente del (primo) URI</entry>
              <entry/>
              <entry>irrilevante</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%o</literal></entry>
              <entry>operatore no-op che forza l'esecuzione singolare</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%O</literal></entry>
              <entry>operatore no-op che forza una forma di esecuzione plurale.</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%p</literal></entry>
              <entry>Numero di porta del (primo) URI</entry>
              <entry/>
              <entry>irrilevante</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%s</literal></entry>
              <entry>Schema del (primo) URI</entry>
              <entry/>
              <entry>irrilevante</entry>
              <entry/>
            </row>
            <row>
              <entry><literal>%u</literal></entry>
              <entry>(primo) URI</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%U</literal></entry>
              <entry>elenco separato da spazi degli URI selezionati</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%w</literal></entry>
              <entry>(primo) nome-base senza estensione</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%W</literal></entry>
              <entry>elenco separato da spazi dei nomi-base senza le loro estensioni</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%x</literal></entry>
              <entry>(prima) estensione</entry>
              <entry>singolare</entry>
              <entry/>
              <entry/>
            </row>
            <row>
              <entry><literal>%X</literal></entry>
              <entry>elenco separato da spazi delle estensioni</entry>
              <entry/>
              <entry/>
              <entry>plurale</entry>
            </row>
            <row>
              <entry><literal>%%</literal></entry>
              <entry>il carattere « <literal>%</literal> »</entry>
              <entry/>
              <entry>irrilevante</entry>
              <entry/>
            </row>
          </tbody>
        </tgroup>
      </table>
      <example>
        <title>Utilizzo delle forme singolari <abbrev>rispetto all'</abbrev> quelle plurali</title>
        <para>Supponiamo che la cartella corrente sia <filename>/data</filename> e che la selezione corrente contenga tre file <filename>pierre</filename>, <filename>paul</filename>, e <filename>jacques</filename>. </para>
        <formalpara>
          <title>Se abbiamo richiesto <command>echo %b</command>,</title>
          <para>allora saranno eseguiti i seguenti comando: </para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre</command></member>
          <member><command>echo paul</command></member>
          <member><command>echo jacques</command></member>
        </simplelist>
        <para>Questo perché <literal>%b</literal> indica un parametro <emphasis>singolare</emphasis>. Il comando è quindi eseguito una volta per ciascuno degli elementi selezionati.</para>
        <formalpara>
          <title>Mentre se avessimo richiesto <command>echo %B</command>,</title>
          <para>allora sarà eseguito il seguente comando:</para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre paul jacques</command></member>
        </simplelist>
        <para>Questo perché <literal>%B</literal> indica un parametro <emphasis>plurale</emphasis>. Il comando è dunque eseguito solo una volta con l'elenco degli elementi come argomenti.</para>
        <formalpara>
          <title>Se abbiamo richiesto <command>echo %b %B</command>,</title>
          <para>allora saranno eseguiti i seguenti comando: </para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre pierre paul jacques</command></member>
          <member><command>echo paul pierre paul jacques</command></member>
          <member><command>echo jacques pierre paul jacques</command></member>
        </simplelist>
        <para>Questo perché il primo parametro <emphasis>rilevante</emphasis> è <literal>%b</literal>, e quindi il comando viene eseguito una volta per ciascun elemento selezionato, rimpiazzando ad ogni occorrenza il parametro <literal>%b</literal> con il corrispondente elemento. Il secondo parametro viene elaborato ed aggiunto come argomento al comando eseguito.</para>
        <formalpara>
          <title>E se avessimo richiesto <literal>echo %B %b</literal>,</title>
          <para>sarebbero eseguiti i seguenti comandi:</para>
        </formalpara>
        <simplelist>
          <member><command>echo pierre paul jacques pierre</command></member>
        </simplelist>
        <para>Questo perché il primo parametro <emphasis>rilevante</emphasis> qui è <literal>%B</literal>. Il comando è quindi eseguito una volta soltanto, sostituendo<literal>%B</literal> con l'elenco separato da spazi dei nomi-base. Poiché il comando viene eseguito solo una volta, <literal>%b</literal> viene sostituito una volta sola con il (primo) nome-base.</para>
      </example>
   </sect4>
  </sect3>

</sect2>
