Available in

(1) (1)/es (1)/fr (1)/it (1)/ja (1)/ko (1)/nl (1)/pl (1)/zh_CN (1)/zh_TW

TOC

BASH(1)                                                                BASH(1)



NOME

       bash - GNU Bourne-Again SHell

SINTASSI

       bash [opzioni] [file]

COPYRIGHT

       Bash is Copyright (C) 1989-2005 by the Free Software Foundation, Inc.

DESCRIZIONE

       Bash
        un  interprete  di  linguaggio  di comandi sh-compatibile che esegue i
       comandi letti dallo standard input o da un file.  Bash  inoltre  incor-
       pora utili caratteristiche delle shell Korn e C (ksh e csh).

       Bash
        progettata per essere un'implementazione conforme alla parte Shell and
       Utilities della IEEE POSIX specification (IEEE Standard 1003.1).   Bash
       pu  essere  configurata  per  essere  conforme  allo standard POSIX per
       default.

OPZIONI

       In aggiunta alle opzioni della shell di un solo  carattere  documentate
       nella  descrizione  del  comando incorporato set, quando  invocata bash
       interpreta le seguenti opzioni:

       -c stringa
                 Se  presente l'opzione -c, allora i  comandi  sono  letti  da
                 stringa.   Se  vi  sono  argomenti dopo la stringa, essi sono
                 assegnati ai parametri posizionali, partendo da $0.
       -i        Se  presente l'opzione -i, la shell interattiva.
       -l        fa s che bash funzioni come se fosse stata invocata come  una
                 shell di login (si veda INVOCAZIONE pi avanti).
       -r        Se l'opzione -r
                  presente,   la   shell  diventa  ristretta  (si  veda  SHELL
                 RISTRETTA pi avanti)
       -s        Se  presente l'opzione -s, o se non  rimane  alcun  argomento
                 dopo  che  sono  state  esaminate  le opzioni, i comandi sono
                 letti  dallo  standard  input.   Quest'opzione  permette   di
                 impostare  i parametri posizionali quando si invoca una shell
                 interattiva.
       -D        Una lista di tutte le stringhe fra virgolette preceduta da  $
                 stampata  sullo standard output.  Queste sono le stringhe che
                 sono soggette a traduzione di linguaggio quando  la  localiz-
                 zazione  corrente  non   C o POSIX.  Questo implica l'opzione
                 -n; nessun comando verr eseguito.
       [-+]O [shopt_option]
                 shopt_option   una  delle  opzioni  di  shell  accettate  dal
                 comando  incorporato shopt (si veda COMANDI INCORPORATI DELLA
                 SHELL pi avanti).  Se shopt_option  presente, -O  imposta  il
                 valore di quella opzione; +O lo rimuove.  Se shopt_option non
                 fornita,  i  nomi  e  i  valori  delle  opzioni  della  shell
                 accettati  da  shopt sono stampati sullo standard output.  Se
                 l'opzione di invocazione  +O, l'output  mostrato in  un  for-
                 mato riutilizzabile come input.
       --        Un  --  segna  la fine delle opzioni e disabilita l'ulteriore
                 elaborazione di opzioni.  Gli argomenti dopo il -- sono trat-
                 tati come nomi di file e argomenti.  Un argomento di -
                  equivalente a --.

       Bash  interpreta  anche  un  certo  numero  di  opzioni multicarattere.
       Queste opzioni devono  apparire  nella  riga  di  comando  prima  delle
       opzioni a carattere singolo.

       --debugger
              Dispone l'esecuzione del debugger profile prima dell'avvio della
              shell.   Attiva  la  modalit  estesa  di  debug  (si   veda   la
              descrizione  dell'opzione  extdebug al comando incorporato shopt
              pi avanti) e il tracciamento delle funzioni di shell (si veda la
              descrizione dell'opzione -o functrace al comando incorporato set
              pi avanti).
       --dump-po-strings
              Equivalente a -D, ma l'output  nel formato file GNU  gettext  po
              (portable object).
       --dump-strings
              Equivalente a -D.
       --help Mostra  sullo  standard output un messaggio sull'uso ed esce con
              stato di uscita 0.
       --init-file file
       --rcfile file
              Esegue comandi letti da file invece che dal  file  personale  di
              inizializzazione standard ~/.bashrc se la shell  interattiva (si
              veda INVOCAZIONE pi avanti).

       --login
              Equivalente a -l

       --noediting
              Non usa la libreria GNU readline per leggere  righe  di  comando
              quando la shell  interattiva.

       --noprofile
              Non  legge  n  il  file  di inizializzazione generico di sistema
              /etc/profile n alcuno dei  file  personali  di  inizializzazione
              ~/.bash_profile,  ~/.bash_login, o ~/.profile.  Per default bash
              legge questi file quando  invocata come shell di login (si  veda
              INVOCAZIONE pi avanti).

       --norc Non  legge  n  esegue  il  file  personale  di  inizializzazione
              ~/.bashrc se la shell  interattiva.  Questa opzione  attiva  per
              default se la shell  invocata come sh.

       --posix
              Cambia  il  comportamento di bash, dove le operazioni di default
              differiscono dallo standard POSIX, in modo da corrispondere alla
              (modalit posix) standard.

       --ristretta
              La  shell diventa ristretta (si veda SHELL RISTRETTA pi avanti).

       --verbose
              Equivalente a  -v.

       --version
              Mostra informazioni sulla versione di  questa  istanza  di  bash
              sullo standard output ed esce con stato d'uscita 0.

ARGOMENTI

       Se  rimangono  argomenti  dopo che sono state elaborate le opzioni, e n
       l'opzione -c n l'opzione -s sono state specificate, il primo  argomento
       si assume sia il nome di un file che contiene dei comandi di shell.  Se
       bash
        invocata in questo modo, $0
        impostato al nome del file, e i parametri posizionali  sono  impostati
       agli  argomenti che lo seguono.  Bash legge ed esegue comandi da questo
       file,  poi  esce.   Lo  stato  d'uscita  di  Bash   lo  stato  d'uscita
       dell'ultimo  comando  eseguito  nello  script.   Se non  eseguito alcun
       comando lo stato d'uscita  0.   Viene  fatto  un  primo  tentativo  per
       aprire il file nella directory corrente, e se non viene trovato il file
       la shell cerca le directory in PATH per lo script.

INVOCAZIONE

       Una shell di login  una in cui il cui  primo  carattere  dell'argomento
       zero  un -, o una che venga avviata con l'opzione --login.

       Una  shell  detta interattiva se  stata avviata senza argomenti diversi
       dalle opzioni e senza l'opzione -c i  cui  standard  input  e  standard
       error   sono   entrambi   inviati  a  terminali  (come  determinato  da
       isatty(3)), o se viene avviata con l'opzione -i .  PS1
        impostato e $- include i se bash
        interattiva, permettendo a uno script di shell o a un file di inizial-
       izzazione di verificare questo stato.

       I  seguenti  paragrafi  descrivono  come  bash  esegue  i  suoi file di
       inizializzazione.  Se qualcuno dei file esiste ma non pu  essere  letto
       bash  riporta  un  errore.  Le tilde sono espanse nei nomi di file come
       descritto pi avanti sotto Espansione della tilde nella  sezione  ESPAN-
       SIONE .

       Quando bash
        invocata  come  una  shell  di login interattiva, o come una shell non
       interattiva con l'opzione  --login, prima legge ed esegue  comandi  dal
       file  /etc/profile,  se  quel  file esiste.  Dopo aver letto quel file,
       cerca ~/.bash_profile, ~/.bash_login, e ~/.profile, in quest'ordine,  e
       legge  ed  esegue  comandi  dal  primo file che trova e che  leggibile.
       L'opzione --noprofile pu essere usata quando  si  avvia  la  shell  per
       inibire questo comportamento.

       Quando  una  shell di login esce, bash legge ed esegue comandi dal file
       ~/.bash_logout, se esiste.

       Quando una shell interattiva che non  una shell di login  avviata, bash
       legge  ed  esegue  comandi  da  ~/.bashrc,  se quel file esiste.  Ci pu
       essere inibito utilizzando l'opzione --norc .  L'opzione --rcfile  file
       forza  bash  a  leggere  ed  eseguire  comandi  da  file  invece che da
       ~/.bashrc.

       Quando bash
        avviata in modo non interattivo, per eseguire uno script di shell, per
       esempio,  cerca la variabile di ambiente BASH_ENV , espande il suo val-
       ore se questo esiste, e utilizza il valore espanso come il nome  di  un
       file  da  leggere  ed eseguire.  Bash si comporta come se fossero stati
       eseguiti i seguenti comandi:
              if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
       ma il valore della variabile PATH non  usato per cercare  il  nome  del
       file.

       Se bash
        invocata  col nome sh, tenta di imitare il comportamento di inizializ-
       zazione delle vecchie versioni di sh il pi fedelmente possibile, e allo
       stesso tempo si conforma allo standard POSIX.  Quando invocata come una
       shell di login interattiva,  o  una  shell  interattiva  con  l'opzione
       --login,  per  prima  cosa  tenta  di  leggere ed eseguire i comandi da
       /etc/profile e ~/.profile, in quest'ordine.  L'opzione  --noprofile  pu
       essere  usata  per  inibire questo comportamento.  Quando invocata come
       una shell interattiva col nome sh, bash cerca la variabile ENV, espande
       il suo valore se questo  definito, e usa il valore espanso come nome di
       un file da leggere ed eseguire.  Poich una shell invocata come  sh  non
       tenta  di  leggere  ed  eseguire  comandi  da  qualsiasi  altro file di
       inizializzazione, l'opzione --rcfile non ha alcun effetto.   Una  shell
       non  interattiva invocata col nome sh non tenta di leggere nessun altro
       file di inizializzazione.  Quando invocata  come  sh,  bash  lavora  in
       modalit posix dopo che i file di inizializzazione sono stati letti.

       Quando bash
        avviata  in  modalit  posix  come  con l'opzione --posix della riga di
       comando, essa segue lo standard POSIX per i file  di  inizializzazione.
       In  questa  modalit  la  shell interattiva espande la variabile ENV e i
       comandi sono letti ed eseguiti dal file il cui nome  il valore espanso.
       Nessun altro file di inizializzazione viene letto.

       Bash  cerca  di  determinare  quando  la si sta eseguendo dal demone di
       shell remota, usualmente rshd.  Se bash determina che viene eseguito da
       rshd,  legge  ed  esegue  comandi  da ~/.bashrc, se quel file esiste ed
       leggibile.  Non fa questo se  invocata come sh.   L'opzione  --norc  pu
       essere  usata per inibire questo comportamento, e l'opzione --rcfile pu
       essere usata per forzare la lettura di un altro file, ma  rshd  solita-
       mente  non  invoca la shell con queste opzioni o non permette che siano
       specificate.

       Se la shell  avviata con l'id effettivo dell'utente (gruppo) non uguale
       all'id  reale  dell'utente  (gruppo), e non viene fornita l'opzione -p,
       nessun file di inizializzazione viene letto, le funzioni di  shell  non
       vengono  ereditate  dall'ambiente,  la  variabile SHELLOPTS , se esiste
       nell'ambiente, viene ignorata, e l'id effettivo dell'utente   impostata
       all'id reale dell'utente.  Se l'opzione -p  fornita all'invocazione, il
       comportamento all'avvio il medesimo, ma l'id effettivo dell'utente  non
       viene reimpostato.

DEFINIZIONI

       Le seguenti definizioni sono usate nel resto di questo documento.
       blank  Uno spazio o carattere di tabulazione (tab).
       parola Una  sequenza  di  caratteri  considerata  come una singola unit
              dalla shell.  Nota anche come token.
       nome   Una parola che consiste solo di caratteri alfanumerici  e  trat-
              tini di sottolineatura, e comincia con un carattere alfabetico o
              un trattino di sottolineatura.  Definita  anche  un  identifica-
              tore.
       metacarattere
              Un carattere che, quando non quotato, separa le parole.  Uno dei
              seguenti:
              |  & ; ( ) < > spazio tab
       operatore di controllo
              Un token che realizza una funzione di controllo.
               uno dei seguenti simboli:
              || & && ; ;; ( ) | <newline>

PAROLE RISERVATE

       Le parole riservate sono parole che hanno un significato  speciale  per
       la  shell.   Le seguenti parole sono riconosciute come riservate quando
       non quotate e sono o la prima parola di un comando  semplice  (si  veda
       GRAMMATICA  DELLA SHELL pi avanti) o la terza parola di un comando case
       o di un comando for :

       ! case  do done elif else esac fi for function if in select then  until
       while { } time [[ ]]

GRAMMATICA DELLA SHELL

   Comandi semplici
       Un  comando  semplice   una sequenza opzionale di assegnamenti di vari-
       abile seguita da parole, separate da blank, e ridirezioni, e  terminata
       da un operatore di controllo.  La prima parola specifica il comando che
       deve essere eseguito, ed  passata come argomento  zero.   Le  rimanenti
       parole sono passate come argomenti al comando invocato.

       Il  valore di ritorno di un comando semplice  il suo stato di uscita, o
       128+n se il comando  fatto terminare da un segnale n.

   Pipeline
       Una pipeline  una sequenza di uno o pi comandi separati  dal  carattere
       |.  Il formato per una pipeline :

              [time [-p]] [ ! ] comando [ | comando2 ... ]

       Lo standard output di comando
        connesso  attraverso una pipe allo standard input di comando2.  Questa
       connessione  effettuata prima di qualsiasi ridirezione specificata  dal
       comando (si veda RIDIREZIONE pi avanti).

       Lo  stato  di  ritorno  di  una pipeline  lo stato d'uscita dell'ultimo
       comando, a meno che l'opzione pipefail non sia abilitata.  Se  pipefail
       abilitata,  lo  stato  di ritorno della pipeline  il valore dell'ultimo
       comando (il pi a destra) che esce con uno stato diverso da zero o  zero
       se tutti i comandi escono con successo.  Se la parola riservata !  pre-
       cede una pipeline, lo stato d'uscita di quella pipeline   la  negazione
       logica dello stato d'uscita come sopra descritto.  La shell aspetta che
       tutti i comandi nella pipeline terminino prima di ritornare un  valore.

       Se  la  parola  riservata time precede una pipeline, quando la pipeline
       termina vengono notificati i tempi impiegati dall'utente e dal  sistema
       per  la  sua  esecuzione.  L'opzione -p cambia il formato di output con
       quello  specificato  da  POSIX.   La  variabile  TIMEFORMAT  pu  essere
       impostata  a  una stringa di formato che specifica come le informazioni
       sui tempi dovranno essere mostrate; si veda la descrizione di  TIMEFOR-
       MAT sotto Variabili di shell pi avanti.

       Ogni  comando  in una pipeline  eseguito come un processo separato (cio
       in una subshell).

   Liste
       Una lista  una sequenza di una o pi  pipeline  separate  da  uno  degli
       operatori ;, &, &&, o ||, e facoltativamente fatta terminare da uno fra
       ;, &, o <newline>.

       Di questi operatori di lista, && e || hanno uguale precedenza,  seguiti
       da ; e &, che hanno uguale precedenza.

       Per delimitare dei comandi pu essere usata in una lista una sequenza di
       uno o pi newline al posto di un punto e virgola.

       Se un comando  terminato dall'operatore di controllo &, la shell esegue
       il  comando in background in una subshell.  La shell non aspetta che il
       comando finisca, e lo stato di ritorno  0.  I comandi separati da un  ;
       sono  eseguiti  sequenzialmente;  la shell aspetta che ogni comando, in
       sequenza, termini.  Lo stato di ritorno  lo stato d'uscita  dell'ultimo
       comando eseguito.

       Gli  operatori  di  controllo  &&  e  || denotano liste AND e liste OR,
       rispettivamente.  Una lista AND ha la forma

              comando1 && comando2

       comando2
        eseguito se, e solo se, comando1 ritorna uno stato d'uscita di zero.

       Una lista OR ha la forma

              comando1 || comando2


       comando2
        eseguito se e solo se comando1 ritorna uno stato d'uscita  diverso  da
       zero.   Lo  stato  di  ritorno  di  liste  AND  e OR  lo stato d'uscita
       dell'ultimo comando eseguito nella lista.

   Comandi composti
       Un comando composto  uno dei seguenti:

       (lista)
              lista  eseguita in un ambiente di subshell (si veda AMBIENTE  DI
              ESECUZIONE  DEI COMANDI pi avanti).  Assegnamenti di variabile e
              comandi incorporati che influenzano l'ambiente della  shell  non
              hanno effetto dopo che il comando
               completato.  Lo stato di ritorno  lo stato d'uscita di lista.

       { lista; }
              lista   semplicemente  eseguita nell'ambiente di shell corrente.
              lista deve essere fatta terminare con un newline o  un  punto  e
              virgola.   Questo   conosciuto  come group command.  Lo stato di
              ritorno  lo stato d'uscita di lista.  Da notare che diversamente
              dai  metacaratteri  (  e ), { e } sono parole riservate e devono
              essere usati quando una parola  riservata   ammissibile.   Poich
              esse non causano una divisione delle parole, devono essere sepa-
              rate da lista con uno spazio.

       ((espressione))
              L'espressione  valutata in accordo con le  regole  descritte  pi
              avanti  sotto VALUTAZIONE ARITMETICA.  Se il valore dell'espres-
              sione  diverso da zero, lo stato di  ritorno  0;  altrimenti  lo
              stato  di  ritorno   1.   Questo   esattamente equivalente a let
              "espressione".

       [[ espressione ]]
              Ritorna uno stato di 0 o 1 a  seconda  della  valutazione  della
              espressione  condizionale espressione.  Le espressioni sono com-
              poste dalle primitive descritte pi avanti sotto ESPRESSIONI CON-
              DIZIONALI.  La suddivisione in parole e l'espansione del nome di
              percorso non sono effettuate sulle parole fra la [[ e ]]; espan-
              sione  della  tilde,  espansione  di  parametro  e di variabile,
              espansione aritmetica, sostituzione di comando, sostituzione  di
              processo, e rimozione degli apici vengono effettuate.  Gli oper-
              atori condizionali come -f devono essere senza apici per  essere
              riconosciuti come primitive.

              Quando  vengono  usati  gli  operatori  == e !=, la stringa alla
              destra dell'operatore  considerato un modello ed  confrontata in
              accordo  con  le  regole  descritte  pi  avanti sotto Modelli di
              ricerca.  Se l'opzione di shell nocasematch
               abilitata,  il  confronto   effettuato  senza  distinzione  fra
              maiuscole  e  minuscole  nei caratteri alfabetici.  Il valore di
              ritorno  0 se la stringa corrisponde (==) o non corrisponde (!=)
              al  modello,  e  1  negli altri casi.  Ogni parte del modello pu
              essere quotato  per  forzarlo  a  essere  individuato  come  una
              stringa.

              Un  ulteriore  operatore binario, =~,  disponibile con la stessa
              precedenza di == e !=.  Quando  viene  usato,  la  stringa  alla
              destra   dell'operatore    considerata  un'espressione  regolare
              estesa e confrontata come tale (come in regex(3)).  Il valore di
              ritorno  0 se la stringa corrisponde al modello, e 1 negli altri
              casi.  Se l'espressione regolare  sintatticamente scorretta,  il
              valore   di   ritorno   dell'espressione  condizionale   2.   Se
              l'opzione di shell nocasematch
               abilitata, il confronto  effettuato senza distinguere le maius-
              cole  dalle  minuscole  nei  caratteri  alfabetici.  Substringhe
              individuate tramite  subespressioni  fra  parentesi  all'interno
              dell'espressione  regolare  sono  salvate  nella variabile array
              BASH_REMATCH.  L'elemento  di  BASH_REMATCH  con  indice  0   la
              porzione  della  stringa  corrispondente  all'intera espressione
              regolare.  L'elemento di BASH_REMATCH con indice n  la  porzione
              della  stringa  corrispondente alla subespressione fra parentesi
              nth.

              Le espressioni possono essere combinate usando i seguenti opera-
              tori, elencati in ordine inverso di precedenza:

              ( espressione )
                     Ritorna il valore di espressione.  Questo pu essere usato
                     per modificare la normale precedenza degli operatori.
              ! espressione
                     Vero se espressione
                      falsa.
              espressione1 && espressione2
                     Vero se entrambe espressione1 e espressione2 sono vere.
              espressione1 || espressione2
                     Vero se almeno una fra espressione1 o espressione2
                      vera.

              Gli operatori && e || non valutano espressione2 se il valore  di
              espressione1   sufficiente  per determinare il valore di ritorno
              dell'intera espressione condizionale.

       for nome [ in parola; ] do lista ; done
              La lista di parole che seguono in  espansa, generando una  lista
              di elementi.  La variabile nome  impostata, di volta in volta, a
              ciascun elemento di questa lista e lista  eseguita  ogni  volta.
              Se  la  in parola  omessa, il comando for esegue lista una volta
              per ogni parametro posizionale esistente (si veda  PARAMETRI  pi
              avanti).   Lo  stato  di  ritorno  lo stato d'uscita dell'ultimo
              comando eseguito.  Se l'espansione degli elementi che seguono in
              risultano  in una lista vuota, non  eseguito alcun comando, e lo
              stato di ritorno  0.

       for (( expr1 ; expr2 ; expr3 )) ; do lista ; done
              Prima viene valutata l'espressione aritmetica expr1  in  accordo
              con  le regole descritte pi avanti sotto VALUTAZIONE ARITMETICA.
              Viene quindi  valutata  ripetutamente  l'espressione  aritmetica
              expr2  finch  non  assume  il valore zero.  Ogni volta che expr2
              diverso da zero, lista viene eseguita e l'espressione aritmetica
              expr3  viene  valutata.  Se qualche espressione  omessa, si sup-
              pone che abbia il valore 1.  Il  valore  di  ritorno   lo  stato
              d'uscita  dell'ultimo comando in lista che  eseguito, o falso se
              una qualsiasi delle espressioni non  valida.

       select nome [ in parola; ] do lista ; done
              La lista di parole che segue in  espansa, generando una lista di
              elementi.   L'insieme delle parole espanse  stampato sullo stan-
              dard error, ognuna preceduta da un  numero.   Se  la  in  parola
              omessa, sono stampati i parametri posizionali (si veda PARAMETRI
              pi avanti).  poi mostrato il prompt PS3 ed  letta una riga dallo
              standard  input.   Se  la riga  contrassegnata da un numero cor-
              rispondente a una delle parole mostrate,  allora  il  valore  di
              nome
               impostato  a  quella parola.  Se la riga  vuota, le parole e il
              prompt sono mostrati di nuovo.  Se viene immesso  EOF  [CTRL-D],
              il  comando termina.  Qualsiasi altro valore letto fa s che nome
              sia impostato al valore nullo.  La  riga  letta   salvata  nella
              variabile REPLY.  La lista
               eseguita dopo ciascuna selezione fino a che non sia eseguito un
              comando break .  Lo stato d'uscita di select
               lo stato d'uscita dell'ultimo comando eseguito in lista, o zero
              se nessun comando  stato eseguito.

       case parola in [ [(] modello [ | modello ] ... ) lista ;; ] ... esac
              Un comando case prima espande parola, e prova a confrontarla, di
              volta in volta, con ognuno dei modelli, usando le stesse  regole
              di  confronto dell'espansione di percorso (si veda Espansione di
              percorso pi avanti).  La parola  espansa usando espansione della
              tilde,  espansione  di  parametro  e  di variabile, sostituzione
              aritmetica, sostituzione di comando, sostituzione di processo  e
              rimozione  dei  simboli  di  quotatura.   Ogni modello esaminato
              espanso usando espansione della tilde, espansione di parametro e
              di variabile, sostituzione aritmetica, sostituzione di comando e
              sostituzione di processo.  Se l'opzione di shell nocasematch
               abilitata,  il  confronto   effettuato  senza  distinzione  fra
              maiuscole  e  minuscole  nei caratteri alfabetici.  Quando viene
              trovata una corrispondenza,  viene  eseguita  la  lista  a  essa
              abbinata.   Dopo  il primo confronto riuscito, non ne viene ten-
              tato nessun altro.  Lo stato d'uscita  0 se nessun modello  cor-
              risponde.   Altrimenti,  esso   lo  stato  d'uscita  dell'ultimo
              comando eseguito in lista.

       if lista then lista [ elif lista then lista ] ... [ else lista ] fi
              La lista if
               eseguita.  Se il suo stato d'uscita  0,  eseguita la lista dopo
              then.  Altrimenti,  eseguita a turno ciascuna lista dopo elif, e
              se il suo stato d'uscita  0,  eseguita la  corrispondente  lista
              dopo  then e il comando termina.  Altrimenti, se presente,  ese-
              guita, la lista dopo else.  Lo stato d'uscita  lo stato d'uscita
              dell'ultimo comando eseguito, o zero se nessuna delle condizioni
              considerate  risultata essere vera.

       while lista do lista done
       until lista do lista done
              Il comando while esegue ripetutamente la  lista  dopo  do  finch
              l'ultimo  comando  in lista ritorna uno stato di uscita di zero.
              Il comando until  identico al comando while, con  la  sola  dif-
              ferenza che il risultato del test  negato; la lista do
               eseguita  finch  l'ultimo  comando  in  lista ritorna uno stato
              d'uscita diverso da zero.  Lo stato d'uscita dei comandi while e
              until
               lo stato d'uscita dell'ultimo comando eseguito nella lista do o
              zero se non ne  stato eseguito alcuno.

   Definizioni della funzione di shell
       Una funzione di shell  un oggetto che viene chiamato  come  un  comando
       semplice ed esegue un comando composto con una nuova serie di parametri
       posizionali.  Le funzioni di shell sono dichiarate in questo modo:

       [ function ] nome () comando-composto [ridirezione]
              Qui sopra si definisce una funzione chiamata  nome.   La  parola
              riservata  function  opzionale.  Se la parola riservata function
              fornita, le parentesi sono opzionali.  Il corpo  della  funzione
              il  comando  composto comando-composto (si veda Comandi composti
              sopra).  Questo comando  usualmente una lista di comandi fra { e
              },  ma potrebbe essere qualsiasi comando elencato in precedenza,
              sotto Comandi composti.  comando-composto  eseguito  ogni  volta
              che  nome   specificato  come nome di un comando semplice.  Ogni
              ridirezione (si veda RIDIREZIONI pi avanti)  specificata  quando
              una  funzione   definita viene effettuata quando quella funzione
              viene eseguita.  Lo stato d'uscita di una  definizione  di  fun-
              zione   0  tranne quando si verifica un errore di sintassi o una
              funzione in sola lettura  con  lo  stesso  nome   gi  esistente.
              Quando  eseguita,  lo  stato  d'uscita di una funzione  lo stato
              d'uscita dell'ultimo comando eseguito nel corpo. (si  veda  FUN-
              ZIONI pi avanti).

COMMENTI

       In  una  shell  non  interattiva,  o  in  una  shell interattiva in cui
       l'opzione interactive-comments del comando incorporato shopt
        abilitata (si veda COMANDI INCORPORATI DI SHELL pi avanti), una parola
       che  inizia  con  # fa s che la parola e tutti i rimanenti caratteri di
       quella riga siano ignorati.   Una  shell  interattiva  senza  l'opzione
       interactive-comments  abilitata  non  permette  i  commenti.  L'opzione
       interactive_comments
        attiva per default nelle shell interattive.

QUOTATURA

       La Quotatura  usata per togliere il significato speciale, per la shell,
       di  certi  caratteri  o  parole.   La  quotatura  pu  essere  usata per
       disabilitare il trattamento speciale  per  i  caratteri  speciali,  per
       impedire  che  le  parole riservate siano riconosciute come tali, e per
       prevenire l'espansione di parametro.

       Ciascuno dei metacaratteri elencati prima sotto DEFINIZIONI ha un  sig-
       nificato speciale per la shell e deve essere quotato se esso deve rapp-
       resentare se stesso.

       Quando vengono usati i servizi per l'espansione  della  cronologia  dei
       comandi  (si  veda ESPANSIONE DELLA CRONOLOGIA pi avanti), il carattere
       di espansione della cronologia, in genere  !,  dev'essere  quotato  per
       prevenire l'espansione della cronologia.

       Vi  sono tre meccanismi di quotatura: caratteri di protezione (escape),
       apostrofi e virgolette.

       Un backslash  (\)  non  quotato   il  carattere  di  protezione.   Esso
       attribuisce   il   valore   letterale   al  successivo  carattere,  con
       l'eccezione di <newline>.  Se vi  una coppia \<newline> ,  e  il  back-
       slash non  quotato, il \<newline>
        trattato  come  una continuazione di riga (cio,  rimosso dal flusso di
       input e viene realmente ignorato).

       Racchiudendo dei caratteri in apostrofi si conserva il valore letterale
       di  ogni  carattere  all'interno  degli apostrofi.  Un apostrofo non pu
       essere inserito tra apostrofi, nemmeno preceduto da un backslash.

       Racchiudere caratteri tra virgolette conserva il  valore  letterale  di
       tutti  i  caratteri all'interno, con le eccezioni di $, `, \, e, quando
       l'espansione della cronologia  abilitata, !.  I caratteri $ e ` conser-
       vano  il  loro significato speciale anche tra virgolette.  Il backslash
       mantiene il suo significato speciale solo quando  seguito  da  uno  dei
       seguenti  caratteri:  $,  `,  ",  \ o <newline>.  Le virgolette possono
       essere contenute in una stringa fra virgolette facendole  precedere  da
       un backslash.  Se abilitata, l'espansione della cronologia viene effet-
       tuata a meno che un !  tra virgolette non venga protetto  da  un  back-
       slash.  Il backslash che precede il !  non viene rimosso.

       I  parametri  speciali  * e @ hanno un significato speciale quando sono
       tra virgolette (si veda PARAMETRI pi avanti).

       Parole della forma $'stringa'  sono  trattate  in  modo  speciale.   La
       parola  espande in stringa, coi caratteri protetti da un backslash sos-
       tituiti come specificato dallo standard ANSI C.  Le  sequenze  di  pro-
       tezione tramite backslash, se presenti, sono decodificate come segue:
              \a     avviso (segnale acustico)
              \b     backspace
              \e     un carattere di escape
              \f     salto pagina
              \n     codice di fine riga (newline)
              \r     carriage return
              \t     tabulazione orizzontale
              \v     tabulazione verticale
              \\     backslash
              \'     apostrofo
              \nnn   il  carattere  a otto bit il cui valore  il valore ottale
                     nnn (da una a tre cifre)
              \xHH   il carattere a otto bit il cui valore  il valore esadeci-
                     male HH (una o due cifre esadecimali)
              \cx    un carattere control-x

       Il risultato espanso  racchiuso fra apostrofi come se il segno del dol-
       laro non fosse presente.

       Una stringa fra virgolette preceduta dal segno del dollaro ($) causa la
       traduzione  della  stringa  conformemente alla localizzazione corrente.
       Se la localizzazione corrente  C o POSIX, il segno  del  dollaro  viene
       ignorato.   Se  la  stringa  tradotta e sostituita, la sostituzione fra
       virgolette.

PARAMETRI

       Un parametro
        una entit che contiene valori.  Pu essere un nome, un numero o uno dei
       caratteri  speciali  elencati  pi avanti sotto Parametri speciali.  Una
       variabile
        un parametro indicato da un nome.  Una variabile ha un valore e zero o
       pi  attributi.   Gli  attributi  sono  assegnati utilizzando il comando
       incorporato declare (si veda declare pi avanti in  COMANDI  INCORPORATI
       DI SHELL).

       Un  parametro   impostato  se  a  esso   stato assegnato un valore.  La
       stringa  nulla   un  valore  valido.   Una  volta  che  una   variabile
       impostata,  essa  pu  essere rimossa solo usando il comando incorporato
       unset (si veda COMANDI INCORPORATI DELLA SHELL pi avanti).

       Una variabile pu essere assegnata da una istruzione della forma

              nome=[valore]

       Se valore
        omesso, alla variabile  assegnata la stringa nulla.   Tutti  i  valori
       sono  sottoposti  a  espansione  della tilde, espansione di parametro e
       variabile, sostituzione di comando, espansione aritmetica  e  rimozione
       dei caratteri di quotatura (si veda ESPANSIONE pi avanti).  Se la vari-
       abile ha il suo attributo integer impostato, allora valore
        valutato come un'espressione  aritmetica  anche  se  l'espansione  del
       $((...)) non  utilizzata (si veda Espansione aritmetica pi avanti).  La
       suddivisione in parole non  effettuata, con l'eccezione  di  "$@"  come
       spiegato  pi avanti sotto Parametri speciali.  L'espansione di percorso
       non  effettuata.  Le istruzioni di assegnamento possono anche  apparire
       come  argomenti  per  i  comandi  incorporati  alias, declare, typeset,
       export, readonly e local .

       Nel contesto in cui un'istruzione di  assegnamento  sta  assegnando  un
       valore  a una variabile di shell o a un indice di array, l'operatore +=
       pu essere usato per accodare o aggiungere al  precedente  valore  della
       variabile.  Quando +=  applicato a una variabile per la quale l'attrib-
       uto integer  stato  impostato,  valore   valutato  come  un'espressione
       aritmetica  e  aggiunto  al valore corrente della variabile, che  a sua
       volta valutata.  Quando +=  applicato  a  una  variabile  array  usando
       assegnamenti  composti (si veda Array pi avanti), il valore della vari-
       abile non  rimosso (com' quando si usa =), e nuovi valori sono aggiunti
       alla fine dell'array iniziando dal massimo indice di array aumentato di
       uno.  Quando applicata a una variabile valutata  come  stringa,  valore
       espanso e accodato al valore della variabile.

   Parametri posizionali
       Un parametro posizionale
        un  parametro  il  cui nome  indicato da una o pi cifre, diverse dalla
       singola cifra 0.  I parametri posizionali sono  assegnati  dagli  argo-
       menti della shell quando questa  invocata, e possono essere riassegnati
       usando il comando incorporato set .  I parametri posizionali  non  pos-
       sono  essere  assegnati  con  istruzioni  di assegnamento.  I parametri
       posizionali sono temporaneamente sostituiti quando  eseguita  una  fun-
       zione di shell (si veda FUNZIONI pi avanti).

       Quando  si  espande un parametro posizionale composto da pi di una sola
       cifra, esso deve essere racchiuso tra parentesi graffe (si veda  ESPAN-
       SIONE pi avanti).

   Parametri speciali
       La  shell  tratta  molti  parametri in modo speciale.  Questi parametri
       possono solo essere referenziati; la loro modifica non  permessa.
       *      Si espande nei  parametri  posizionali,  a  partire  dal  primo.
              Quando  l'espansione  avviene  tra virgolette, si espande in una
              singola  parola  contenente  il  valore  di  ciascun   parametro
              separato  dagli  altri  dal primo carattere della variabile spe-
              ciale IFS.  Cio, ``$*''  equivalente a ``$1c$2c...'', dove c
               il primo carattere del valore  della  variabile  IFS.   Se  IFS
              viene annullato, i parametri sono separati da spazi.  Se IFS
               nulla, i parametri sono uniti senza alcun separatore.
       @      Si  espande  nei  parametri  posizionali,  a  partire dal primo.
              Quando l'espansione avviene tra virgolette,  ogni  parametro  si
              espande  in  una parola separata.  Cio, "$@"  equivalente a "$1"
              "$2" ...  Se l'espansione fra virgolette avviene all'interno  di
              una parola, l'espansione del primo parametro  unita con la parte
              iniziale della  parola  originale,  e  l'espansione  dell'ultimo
              parametro   unita  con  la  parte finale della parola originale.
              Quando non vi  alcun parametro posizionale, "$@" e $@ si  espan-
              dono come stringa nulla (cio, sono rimossi).
       #      Si  espande  nel  numero  di parametri posizionali espresso come
              numero decimale.
       ?      Si espande nello stato della pipeline eseguita  pi  recentemente
              senza rilasciare il controllo del terminale.
       -      Si espande nei flag di opzione correnti come specificato in base
              alla chiamata, dal comando incorporato set, o  in  quelli  impo-
              stati dalla shell stessa (come l'opzione -i ).
       $      Si espande nell'ID di processo della shell.  In una subshell (),
              si espande nell'ID di processo  della  shell  corrente,  non  in
              quello della subshell.
       !      Si  espande nell'ID di processo del comando in background (asin-
              crono) pi recentemente eseguito.
       0      Si espande nel nome della  shell  o  script  di  shell.   Questo
              impostato alla inizializzazione della shell.  Se bash
               chiamata con un file di comandi, $0
               impostato al nome di quel file.  Se bash
               avviata con l'opzione -c, allora $0
               impostato  al  primo  argomento dopo la stringa che deve essere
              eseguita, se presente.  Altrimenti,  impostato al percorso usato
              per chiamare bash, come dato dall'argomento zero.
       _      All'avvio  della  shell,  impostato al nome di percorso assoluto
              usato per invocare la shell o lo script di shell  che   eseguito
              come  passato nell'ambiente o nella lista di argomenti.  Succes-
              sivamente,  si  espande  nell'ultimo  argomento  del  precedente
              comando, dopo l'espansione.
               anche  impostato  al  nome  completo  usato  per  invocare ogni
              comando eseguito e  messo  nell'ambiente  esportato  verso  quel
              comando.   Mentre  si  controlla la posta, questo parametro con-
              tiene il nome del file del messaggio attualmente in esame.

   Variabili di shell
       Le seguenti variabili sono impostate dalla shell:

       BASH   Si espande al nome completo usato per chiamare questa istanza di
              bash.
       BASH_ARGC
              Una  variabile di array i cui valori sono il numero di parametri
              in ogni frame del corrente stack delle chiamate di esecuzione di
              bash.   Il  numero  di parametri della subroutine corrente (fun-
              zione di shell o script eseguito con . o source)  in  cima  allo
              stack.   Quando  viene  eseguita  una  subroutine,  il numero di
              parametri passati
               messo in cima a BASH_ARGC.  La  shell  imposta  BASH_ARGC  solo
              quando   in  modalit estesa di debugging (si veda la descrizione
              dell'opzione  extdebug  per  il  comando  incorporato  shopt  pi
              avanti)
       BASH_ARGV
              Una variabile di array contenente tutti i parametri nel corrente
              stack delle chiamate di esecuzione di bash.  Il parametro finale
              dell'ultima chiamata di subroutine  in cima allo stack; il primo
              parametro della chiamata iniziale  in fondo.  Quando una subrou-
              tine  viene  eseguita,  i parametri forniti sono messi in cima a
              BASH_ARGV.  La shell imposta BASH_ARGV solo quando   in  modalit
              estesa   di  debugging  (si  veda  la  descrizione  dell'opzione
              extdebug al comando incorporato shopt pi avanti)
       BASH_COMMAND
              Il comando attualmente in esecuzione o  in  procinto  di  essere
              eseguito, a meno che la shell non stia eseguendo un comando come
              risultato di un'intercettazione di segnale (trap), nel qual caso
              il comando in esecuzione al momento dell'intercettazione.
       BASH_EXECUTION_STRING
              L'argomento per il comando all'invocazione dell'opzione -c.
       BASH_LINENO
              Una  variabile  array  i  cui elementi sono i numeri di riga nei
              file di origine corrispondenti a ciascun elemento  di  FUNCNAME.
              ${BASH_LINENO[$i]}   il  numero di riga nel file di origine dove
              ${FUNCNAME[$ifP]}  stato chiamato.  Il nome del file di  origine
              corrispondente   ${BASH_SOURCE[$i]}.   Usare LINENO per ottenere
              il numero di riga corrente.
       BASH_REMATCH
              Una variabile array i cui elementi sono assegnati dall'operatore
              binario  =~ al comando condizionale [[.  L'elemento con indice 0
              la porzione della stringa che corrisponde all'intera espressione
              regolare.   L'elemento  con  indice n  la porzione della stringa
              che corrisponde alla  n-sima subespressione fra  parentesi.   La
              variabile  in sola lettura.
       BASH_SOURCE
              Una  variabile  array i cui elementi sono i nomi dei file da cui
              provengono gli elementi nella variabile array FUNCNAME.
       BASH_SUBSHELL
              Incrementato di uno ogni volta che una subshell o un ambiente di
              subshell    stato  creato  dalla  shell  originale.   Il  valore
              iniziale  0.
       BASH_VERSINFO
              Una variabile array in sola lettura i cui elementi danno  infor-
              mazioni  sulla  versione  di  quest'istanza  di  bash.  I valori
              assegnati ai membri dell'array sono come segue:
              BASH_VERSINFO[0]        Il  numero  di  versione   principale(la
                                      release).
              BASH_VERSINFO[1]        Il  numero  di  versione  secondario (la
                                      versione).
              BASH_VERSINFO[2]        Il  livello  di  aggiornamento   tramite
                                      patch.
              BASH_VERSINFO[3]        La versione di compilazione.
              BASH_VERSINFO[4]        Lo  stato della release (ad es., beta1).
              BASH_VERSINFO[5]        Il valore di MACHTYPE.

       BASH_VERSION
              Si espande in una stringa che descrive  la  versione  di  questa
              istanza di bash.

       COMP_CWORD
              Un  indice in ${COMP_WORDS} della parola contenente la posizione
              corrente del cursore.  Questa variabile  disponibile solo  nelle
              funzioni  di  shell invocate dalle risorse di completamento pro-
              grammabile (si veda Completamento programmabile pi avanti).

       COMP_LINE
              La riga di comando corrente.  Questa variabile  disponibile solo
              nelle  funzioni  di  shell  e  nei  comandi esterni invocati dai
              servizi di completamento programmabile  (si  veda  Completamento
              programmabile pi avanti).

       COMP_POINT
              L'indice   della   posizione   corrente   del  cursore  relativa
              all'inizio del comando corrente.  Se la posizione  corrente  del
              cursore   alla  fine  del  comando corrente, il valore di questa
              variabile  uguale a ${#COMP_LINE}.  Questa  variabile   disponi-
              bile solo nelle funzioni di shell e comandi esterni invocati dai
              servizi di completamento programmabile  (si  veda  Completamento
              programmabile pi avanti).

       COMP_WORDBREAKS
              L'insieme  dei  caratteri  che  la libreria Readline tratta come
              separatori di parola nell'effettuare il completamento di parola.
              Se  COMP_WORDBREAKS  viene annullata, perde le sue propriet spe-
              ciali, anche se poi reimpostata.

       COMP_WORDS
              Una variabile array (si veda  Array  pi  avanti)  che   composta
              dalle  singole parole nella riga di comando corrente.  Le parole
              sono divise anche dai metacaratteri della shell poich  l'analiz-
              zatore  della shell li considererebbe a parte.  Questa variabile
              disponibile solo nelle funzioni di shell e comandi esterni invo-
              cati  dai  servizi  di completamento programmabile (si veda Pro-
              grammable Completion pi avanti).

       DIRSTACK
              Una variabile array (si veda Array pi avanti)  che  contiene  il
              contenuto  corrente  dello  stack delle directory.  Le directory
              appaiono nello  stack  nell'ordine  in  cui  sono  mostrate  dal
              comando  incorporato  dirs  .   L'assegnamento  agli elementi di
              questa variabile array pu essere usato per modificare le  direc-
              tory  gi  nello  stack,  ma  i  comandi incorporati pushd e popd
              devono  essere  usati  per  aggiungere  e  rimuovere  directory.
              L'assegnamento  a  questa variabile non cambia la directory cor-
              rente.  Se DIRSTACK viene annullata, perde le sue propriet  spe-
              ciali, anche se poi reimpostata.

       EUID   Espande all'ID-utente effettivo dell'utente corrente, inizializ-
              zata all'avvio della shell.  Questa variabile  in sola  lettura.

       FUNCNAME
              Una  variabile  array  contenente i nomi di tutte le funzioni di
              shell attualmente nello  stack  delle  chiamate  di  esecuzione.
              L'elemento con indice 0  il nome della funzione di shell attual-
              mente in esecuzione.  L'elemento pi in basso di  tutti   "main".
              Questa  variabile esiste solo quando  in esecuzione una funzione
              di shell.  Assegnamenti a FUNCNAME non  hanno  alcun  effetto  e
              ritornano  uno  stato  di  errore.  Se FUNCNAME viene annullata,
              perde le sue propriet speciali, anche se poi reimpostata.

       GROUPS Una variabile array contenente l'elenco dei gruppi dei quali
               membro l'utente corrente.   Assegnamenti  a  GROUPS  non  hanno
              alcun  effetto e ritornano uno stato di errore.  Se GROUPS viene
              annullata, perde le sue propriet speciali, anche  se  poi  reim-
              postata.

       HISTCMD
              Il  numero di cronologia, o indice nella lista della cronologia,
              del comando corrente.  Se HISTCMD viene annullata, perde le  sue
              propriet speciali, anche se poi reimpostata.

       HOSTNAME
              Automaticamente impostata al nome dell'host corrente.

       HOSTTYPE
              Automaticamente   impostata   a  una  stringa  che  univocamente
              descrive il tipo di macchina su cui bash
               in esecuzione.  Il valore di default  dipendente dal sistema.

       LINENO Ogni volta che questo  parametro   referenziato,  la  shell  gli
              assegna un numero decimale che rappresenta il numero di sequenza
              della riga corrente (partendo da 1) all'interno di uno script  o
              funzione.   Quando  non in uno script o funzione, non  garantito
              che il valore restituito sia  significativo.   Se  LINENO  viene
              annullata,  perde  le  sue propriet speciali, anche se poi reim-
              postata.

       MACHTYPE
              Automaticamente impostata a una stringa che  descrive  completa-
              mente il tipo di sistema sul quale bash
               in esecuzione, nel formato standard GNU cpu-company-system.  Il
              valore di default  dipendente dal sistema.

       OLDPWD La precedente directory di lavoro come impostata dal comando cd.

       OPTARG Il  valore  dell'ultimo  argomento opzione elaborato dal comando
              incorporato getopts (si veda COMANDI INCORPORATI DELLA SHELL  pi
              avanti).

       OPTIND L'indice  del  prossimo  argomento  che dev'essere elaborato dal
              comando incorporato getopts (si veda COMANDI  INCORPORATI  DELLA
              SHELL pi avanti).

       OSTYPE Automaticamente  impostata a una stringa che descrive il sistema
              operativo su cui bash
               in esecuzione.  Il valore di default  dipendente dal sistema.

       PIPESTATUS
              Una variabile array (si veda  Array  pi  avanti)  contenente  un
              elenco  di  valori di stato d'uscita dai processi nelle pipeline
              eseguite pi recentemente in primo piano [cio senza rilasciare il
              controllo del terminale] (pu contenere anche un solo comando).

       PPID   L'ID di processo del genitore della shell.  Questa variabile  in
              sola lettura.

       PWD    La directory di lavoro corrente come impostata dal comando cd.

       RANDOM Ogni volta che questo parametro  referenziato, viene generato un
              numero  intero  casuale  fra  0  e 32767.  La sequenza di numeri
              casuali pu essere inizializzata assegnando un valore  a  RANDOM.
              Se RANDOM viene annullata, perde le sue propriet speciali, anche
              se poi reimpostata.

       REPLY  Impostata alla riga di input letta dal comando incorporato  read
              quando nessun argomento  specificato.

       SECONDS
              Ogni  volta che questo parametro  referenziato, viene restituito
              il numero di secondi trascorsi dalla chiamata della  shell.   Se
              un  valore  assegnato a SECONDS, il valore restituito in base ai
              riferimenti successivi
               il numero di secondi trascorsi dall'assegnamento pi  il  valore
              assegnato.   Se  SECONDS  viene annullata, perde le sue propriet
              speciali, anche se poi reimpostata.

       SHELLOPTS
              Una lista, separata da due punti, di opzioni di shell abilitate.
              Ogni parola nella lista  un argomento valido per l'opzione -o al
              comando incorporato set (si veda COMANDI INCORPORATI DI SHELL pi
              avanti).  Le opzioni che appaiono in SHELLOPTS sono quelle indi-
              cate come on da set  -o.   Se  questa  variabile   nell'ambiente
              quando  bash  viene  avviata,  ogni opzione di shell nella lista
              viene abilitata prima di leggere un  qualsiasi  file  di  avvio.
              Questa variabile  in sola lettura.

       SHLVL    incrementato  di  uno ogni volta che una istanza di bash viene
              avviata.

       UID    Si espande  all'ID-utente  dell'utente  corrente,  inizializzato
              all'avvio della shell.  Questa variabile  in sola lettura.

       Le  seguenti  variabili  sono  usate dalla shell.  In alcuni casi, bash
       assegna un valore di default a una variabile; questi casi sono elencati
       pi avanti.

       BASH_ENV
              Se  questo  parametro   impostato  quando bash sta eseguendo uno
              script di shell, il suo valore  interpretato  come  un  nome  di
              file  contenente  comandi  per  inizializzare  la shell, come in
              ~/.bashrc.  Il valore di BASH_ENV
               soggetto a espansione di parametro, sostituzione di comando  ed
              espansione  aritmetica prima di essere interpretato come un nome
              di file.  PATH non  usato per cercare il  nome  di  file  risul-
              tante.
       CDPATH Il  percorso di ricerca per il comando cd.  Questo  un elenco di
              directory, separate da due punti, nelle quali la shell cerca  le
              directory di destinazione specificate dal comando cd.  Un valore
              di esempio ".:~:/usr".
       COLUMNS
              Usato dal comando incorporato select per determinare  il  numero
              di  colonne del terminale nella stampa delle liste di selezione.
              Automaticamente re-impostata al ricevimento di un  segnale  SIG-
              WINCH.
       COMPREPLY
              Una variabile array dalla quale bash legge i possibili completa-
              menti generati da una funzione di shell invocata dal servizio di
              completamento programmabile (si veda Completamento programmabile
              pi avanti).
       EMACS  Se bash trova questa variabile d'ambiente  alla  partenza  della
              shell  col valore "t", presume che la shell sia in esecuzione in
              un buffer di shell emacs e disabilita la modifica della riga.
       FCEDIT L'editor di default per il comando incorporato fc.
       FIGNORE
              Una lista di suffissi, separati da due punti, da ignorare quando
              si  effettua il completamento del nome di file (si veda READLINE
              pi avanti).  Un nome di file il cui suffisso corrisponde  a  una
              delle voci in FIGNORE
               escluso dalla lista dei nomi di file individuati.  Un valore di
              esempio ".o:~".
       GLOBIGNORE
              Una lista di modelli, separati da  due  punti,  che  definiscono
              l'insieme dei nomi di file che l'espansione del nome di percorso
              deve ignorare.  Se un nome di file individuato da un modello  di
              espansione  del  percorso corrisponde anche a uno dei modelli in
              GLOBIGNORE, viene rimosso dalla lista dei nomi da individuare.
       HISTCONTROL
              Una lista di valori, separati da due punti, che controllano come
              i  comandi  vengono salvati nell'elenco della cronologia.  Se la
              lista di valori include ignorespace, le righe che  iniziano  con
              un  carattere  di  spazio  non vengono salvate nell'elenco della
              cronologia.  Un valore di ignoredups fa s che non venga  salvata
              ogni  riga  uguale all'elemento precedente della cronologia.  Un
              valore di ignoreboth
               la combinazione di ignorespace  e  ignoredups.   Un  valore  di
              erasedups  fa  s  che  tutte  le righe uguali alla riga corrente
              vengano rimosse dall'elenco della cronologia prima che  la  riga
              venga  salvata.   Qualsiasi  valore  che non  nella lista di cui
              sopra  ignorato.  Se HISTCONTROL viene annullato o  non  include
              un valore valido, tutte le righe lette dall'analizzatore sintat-
              tico della shell sono salvate nell'elenco  della  cronologia,  a
              meno  che non sia stato specificato HISTIGNORE.  La seconda riga
              e le successive di un comando  composto  multiriga  non  vengono
              controllate,  e  sono aggiunte alla cronologia indipendentemente
              dal valore di HISTCONTROL.
       HISTFILE
              Il nome del file nel quale  salvata la  cronologia  dei  comandi
              (si  veda  CRONOLOGIA  pi  avanti).   Il  valore  predeterminato
              ~/.bash_history.  Se
               annullato la cronologia dei comandi non  salvata al termine  di
              una shell interattiva.
       HISTFILESIZE
              Il  numero massimo di righe contenute nel file della cronologia.
              Quando a questa variabile  assegnato un valore,  il  file  della
              cronologia accorciato, se necessario, rimuovendo le voci pi vec-
              chie, per contenere non pi di quel numero di righe.   Il  valore
              di  default   500.  Il file della cronologia  inoltre troncato a
              questa dimensione dopo la scrittura  al  termine  di  una  shell
              interattiva.
       HISTIGNORE
              Una  lista  di  modelli separati da due punti usata per decidere
              quali righe di comando devono essere salvate  nell'elenco  della
              cronologia.   Ogni modello comincia all'inizio della riga e deve
              corrispondere  alla  riga   completa   (nessun   `*'   implicito
              aggiunto).   Ogni  modello   confrontato  con la riga dopo che i
              controlli specificati da HISTCONTROL sono stati  applicati.   In
              aggiunta  ai normali modelli di shell che confrontano caratteri,
              `&' designa la linea precedente della cronologia.  `&' pu essere
              protetto  usando  un  backslash;  il backslash  rimosso prima di
              eseguire un confronto.  La seconda riga e le  successive  di  un
              comando  composto  multiriga  non  vengono  controllate,  e sono
              aggiunte alla cronologia indipendentemente dal valore di HISTIG-
              NORE.
       HISTSIZE
              Il numero di comandi da memorizzare nella cronologia dei comandi
              (si veda CRONOLOGIA pi avanti).  Il valore di default  500.
       HISTTIMEFORMAT
              Se questa variabile  impostata e non nulla, il suo valore  usato
              come  stringa  di  formato per strftime(3) per stampare l'infor-
              mazione "data e ora" associata  a  ogni  voce  della  cronologia
              mostrata  dal  comando incorporato history.  Se questa variabile
              impostata, data e ora verranno scritte nel file della cronologia
              in modo da essere disponibili anche in successive sessioni della
              shell.
       HOME   La home directory dell'utente corrente; l'argomento  di  default
              per  il  comando  incorporato cd.  Il valore di questa variabile
              anche usata quando si effettua l'espansione della tilde.
       HOSTFILE
              Contiene il nome di un file nello stesso formato  di  /etc/hosts
              che  dovr  essere letto quando la shell ha bisogno di completare
              un nome di host.  La lista dei possibili completamenti  di  nome
              di  host pu essere cambiata mentre la shell  in esecuzione; alla
              prossima occasione in cui si tenta il completamento del nome  di
              host  dopo  che   cambiato il valore, bash aggiunge il contenuto
              del nuovo file alla lista esistente.  Se HOSTFILE
               impostato ma  non  ha  alcun  valore,  bash  tenta  di  leggere
              /etc/hosts per ottenere la lista dei possibili completamenti del
              nome di host.  Quando HOSTFILE viene  annullato,  la  lista  dei
              nomi di host viene pure annullata.
       IFS    L' Internal Field Separator (separatore di campo interno)  usato
              per la suddivisione in parole dopo l'espansione e  per  dividere
              le righe in parole quando si esegue il comando incorporato read.
              Il valore di default ``<space><tab><newline>''.
       IGNOREEOF
              Controlla l'azione della shell al ricevimento  di  un  carattere
              EOF come unico contenuto di una riga di input.  Se impostato, il
              valore
               il numero di caratteri EOF consecutivi da  battere  come  primo
              carattere su una riga di input prima che bash esca.  Se la vari-
              abile esiste ma non ha un valore numerico, o non ha  alcun  val-
              ore,  il  valore  di  default  10.  Se non esiste, EOF indica la
              fine dell'input per la shell.
       INPUTRC
              Il nome di file per il file di avvio di readline che prevale sul
              valore di default che ~/.inputrc (si veda READLINE pi avanti).
       LANG   Usata per determinare la categoria di localizzazione per qualsi-
              asi categoria non  specificatamente  specificata  da  una  delle
              variabili che iniziano con LC_.
       LC_ALL Questa variabile prevale sul valore di LANG e su qualsiasi altra
              variabile LC_ che specifichi una categoria di localizzazione.
       LC_COLLATE
              Questa variabile determina l'ordine di collazione  usato  quando
              vengono  ordinati  i  risultati  dell'espansione di nome di per-
              corso, e determina il comportamento  di  espressioni  di  inter-
              vallo,   classi   di   equivalenza  e  sequenze  di  ordinamento
              all'interno dell'espansione di nome di  percorso  e  della  cor-
              rispondenza tra stringhe.
       LC_CTYPE
              Questa  variabile  determina l'interpretazione di caratteri e il
              comportamento di classi di caratteri all'interno dell'espansione
              di nome di percorso e della corrispondenza tra stringhe.
       LC_MESSAGES
              Questa  variabile determina la localizzazione usata per tradurre
              stringhe tra virgolette precedute da un $.
       LC_NUMERIC
              Questa variabile determina la categoria di localizzazione  usata
              per la formattazione dei numeri.
       LINES  Usato  dal  comando incorporato select per determinare il numero
              di linee del terminale nella stampa delle  liste  di  selezione.
              Automaticamente  re-impostata  al ricevimento di un segnale SIG-
              WINCH.
       MAIL   Se questo parametro  impostato a un nome di file e la  variabile
              MAILPATH  non   impostata,  bash informa l'utente dell'arrivo di
              posta nel file specificato.
       MAILCHECK
              Specifica la frequenza (in secondi) con cui  bash  controlla  la
              posta.  Il valore di default  60 secondi.  Quando  il momento di
              controllare la posta, la shell lo fa prima di mostrare il prompt
              primario.  Se questa variabile non  impostata, o  impostata a un
              valore che non sia un numero maggiore o uguale a zero, la  shell
              disabilita il controllo della posta.
       MAILPATH
              Una lista di nomi di file separati da due punti, da usare per il
              controllo della posta.  Il messaggio che  deve  essere  stampato
              all'arrivo  dei messaggi in un particolare file pu essere speci-
              ficato separando il nome del file  dal  messaggio  con  un  `?'.
              Quando  viene  usato nel testo del messaggio $_  espanso al nome
              del file di posta corrente.  Per esempio:
              MAILPATH='/var/mail/bfox?"You  have  mail":~/shell-mail?"$_  has
              mail!"'
              Bash  fornisce  un valore di default per questa variabile, ma il
              posizionamento dei file di posta degli utenti utilizzato  dipen-
              dente dal sistema (per esempio, /var/mail/$USER).
       OPTERR Se  impostato  al  valore  1,  bash  mostra i messaggi di errore
              generati dal comando incorporato getopts (si veda COMANDI INCOR-
              PORATI DELLA SHELL pi avanti).  OPTERR
               inizializzato  ad  1  ogni  volta che viene invocata la shell o
              viene eseguito uno script di shell.
       PATH   Il percorso di ricerca dei comandi.  un elenco di directory sep-
              arate  da  due  punti,  nelle quali la shell cerca i comandi (si
              veda ESECUZIONE DEI COMANDI pi avanti).  Un nome di directory di
              lunghezza  zero  (nulla)  nel valore di PATH indica la directory
              corrente.  Un nome di directory nullo pu apparire come una serie
              di due punti adiacenti, o come due punti all'inizio o alla fine.
              Il percorso di default  dipendente  dal  sistema  ed   impostato
              dall'amministratore  che  installa  bash.   Un  valore frequente
              ``/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin''.
       POSIXLY_CORRECT
              Se questa variabile  presente nell'ambiente quando viene avviata
              bash, la shell entra in modalit posix prima di leggere i file di
              avvio, come se l'opzione  di  invocazione  --posix  fosse  stata
              specificata.  Se  impostata mentre la shell  in esecuzione, bash
              abilita la modalit posix, come se il comando set -o posix  fosse
              stato eseguito.
       PROMPT_COMMAND
              Se  impostato,  il  valore   eseguito ogni volta come un comando
              prima di scrivere il prompt primario.
       PS1    Il valore di questo parametro   espanso  (si  veda  STRINGHE  DI
              PROMPT  pi avanti) e usato come stringa del prompt primario.  Il
              valore di default ``\s-\v\$ ''.
       PS2    Il valore di questo parametro  espanso allo stesso modo  di  PS1
              ed   usato  come  stringa  di  prompt  secondario.  Il valore di
              default ``> ''.
       PS3    Il valore di questo parametro  usato come prompt per il  comando
              select (si veda GRAMMATICA DELLA SHELL sopra).
       PS4    Il  valore  di questo parametro  espanso allo stesso modo di PS1
              ed il valore  stampato prima di ogni  comando  che  bash  mostra
              durante un trace di esecuzione.  Il primo carattere di PS4
               replicato  tante volte, quanto necessario, per indicare livelli
              multipli di indirezione.  Il valore di default  ``+ ''.
       SHELL  In questa variabile d'ambiente  contenuto il  percorso  completo
              della  shell.   Se non  impostata quando la shell viene avviata,
              bash le assegna  il  percorso  completo  della  shell  di  login
              dell'utente corrente.
       TIMEFORMAT
              Il valore di questo parametro  usato come stringa di formato per
              specificare come dovr essere mostrata l'informazione su  data  e
              ora  per  pipeline aventi come prefisso la parola riservata time
              Il carattere %  introduce  una  sequenza  di  formattazione  che
              espansa  a  un valore di data e ora o ad altre informazioni.  Le
              sequenze di formattazione e il loro significato sono i seguenti;
              le parentesi quadre denotano parti opzionali.
              %%        Una % letterale.
              %[p][l]R  Il tempo trascorso in secondi.
              %[p][l]U  Il  numero di secondi di utilizzo della CPU in modalit
                        utente.
              %[p][l]S  Il numero di secondi di utilizzo della CPU in  modalit
                        sistema.
              %P        La  percentuale  di utilizzo della CPU, calcolata come
                        (%U + %S) / %R.

              La parte opzionale p  una cifra che specifica la precisione,  il
              numero di cifre frazionali dopo il separatore decimale.  Un val-
              ore pari a 0 fa s che  nessun  separatore  decimale  o  frazione
              venga  inserito nell'output.  Possono essere specificate al mas-
              simo tre posizioni dopo il separatore decimale; valori di p mag-
              giori di 3 sono cambiati a 3.  Se p non  specificato  utilizzato
              il valore 3.

              La parte opzionale l specifica un formato pi  lungo,  inclusi  i
              minuti,  nella  forma MMmSS.FFs.  Il valore di p determina se la
              frazione  inclusa o meno.

              Se questa variabile non  impostata, bash agisce come  se  avesse
              il  valore  $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'.   Se il valore
              nullo, non viene mostrata alcuna  informazione  di  tempo.   Una
              newline finale  aggiunta quando la stringa di formato  visualiz-
              zata.

       TMOUT  Se impostato a un valore maggiore di zero, TMOUT  trattato  come
              il  tempo limite (timeout) di default per il comando incorporato
              read.  Il comando  select viene terminato se  non  riceve  input
              dopo  TMOUT  secondi quando l'input  chiesto a un terminale.  In
              una shell interattiva il valore  interpretato come il numero  di
              secondi  di  attesa per l'input dopo l'emissione del prompt pri-
              mario.  Se l'input non arriva Bash termina dopo  aver  aspettato
              per quel numero di secondi.

       TMPDIR Se  impostato,  Bash usa il suo valore come nome della directory
              nella quale Bash crea file temporanei a uso della shell.

       auto_resume
              Questa variabile controlla il modo con cui la shell  interagisce
              con   l'utente  e  con  il  job-control.   Se  questa  variabile
              impostata, dei comandi semplici  composti  da  una  sola  parola
              senza ridirezioni sono considerati come candidati per la ripresa
              di un job in esecuzione che sia stato sospeso.   Non   possibile
              alcuna ambiguit; se vi  pi di un job che comincia con la stringa
              digitata,  scelto il job su cui si
               effettuato l'accesso  pi  recentemente.   Il  nome  di  un  job
              sospeso,  in  questo  contesto,   la  riga  di comando usata per
              avviarlo.  Se impostato al valore exact, la stringa fornita deve
              essere  esattamente uguale al nome di un job fermo; se impostato
              a substring, la stringa fornita deve  combaciare  con  una  sub-
              stringa  del  nome  di un job sospeso.  Il valore substring for-
              nisce funzionalit analoghe all'identificatore del  job  %?   (si
              veda  JOB  CONTROL  pi  avanti).  Se impostato a qualsiasi altro
              valore, la stringa fornita deve essere un prefisso del  nome  di
              un job sospeso; questo consente funzionalit analoghe all'identi-
              ficatore di job %string

       histchars
              Sono i due o tre caratteri che  controllano  l'espansione  della
              cronologia  e la suddivisione in token (si veda ESPANSIONE DELLA
              CRONOLOGIA pi avanti).  Il  primo  carattere   il  carattere  di
              espansione  della  cronologia, il carattere che segnala l'inizio
              di una espansione della cronologia, normalmente `!'.  Il secondo
              carattere   il carattere di sostituzione rapida, che  usato come
              scorciatoia per rieseguire il comando precedentemente  inserito,
              sostituendo  una stringa con un'altra nel comando.  Il valore di
              default  `^'.  Il terzo carattere, opzionale,  il carattere  che
              indica  che  il  resto  della riga  un commento, quando  trovato
              come primo carattere di una parola, normalmente `#'.  Il  carat-
              tere di commento della cronologia fa s che la sostituzione della
              cronologia venga saltata per le  rimanenti  parole  sulla  riga.
              Esso  non  fa  necessariamente  s che l'analizzatore della shell
              tratti il resto della riga come un commento.

   Array
       Bash fornisce variabili  array  monodimensionali.   Ogni  variabile  pu
       essere  usata  come  un  array; il comando incorporato declare dichiara
       esplicitamente un array.  Non c' un limite massimo per la dimensione di
       un  array,  n  alcuna  richiesta  che  gli elementi siano indicizzati o
       assegnati in modo contiguo.  Gli array sono indicizzati  usando  numeri
       interi e cominciano con l'indice zero.

       Un  array   creato automaticamente se a una variabile qualsiasi  asseg-
       nato un valore usando la sintassi nome[subscript]=valore.  Il subscript
       viene  trattato  come  un'espressione  aritmetica che deve risultare un
       numero maggiore o uguale a  zero.   Per  dichiarare  esplicitamente  un
       array,  usare  declare -a nome (si veda COMANDI INCORPORATI DI SHELL pi
       avanti).  anche accettato declare -a  nome[subscript]  ;  il  subscript
       viene  ignorato.   Per  una  variabile array possono essere specificati
       degli attributi utilizzando i comandi incorporati declare e readonly  .
       Ogni attributo si applica a tutti gli elementi di un array.

       Agli  elementi  dell'array vengono assegnati valori usando assegnamenti
       composti della forma  nome=(valore1  ...  valoren),  dove  ogni  valore
       della  forma  [subscript]=stringa.  richiesto solo stringa.  Se vengono
       fornite le parentesi opzionali e il subscript, l'elemento viene  asseg-
       nato   a  quell'indice;  altrimenti  l'indice  dell'elemento  assegnato
       l'ultimo indice gi utilizzato aumentato di uno.  L'indicizzazione parte
       da  zero.   Questa  sintassi   accettata  anche dal comando incorporato
       declare .  Elementi singoli di un array possono essere assegnati con la
       sintassi nome[subscript]=valore introdotta pi sopra.

       Qualsiasi  elemento  di un array pu essere referenziato con ${nome[sub-
       script]}.  Le  parentesi  sono  richieste  per  evitare  conflitti  con
       l'espansione  di  percorso.  Se subscript  @ o *, la parola espande a a
       tutti gli elementi di nome.  Questi subscript differiscono solo  quando
       la  parola  appare  inclusa  fra virgolette.  Se la parola  quotata con
       virgolette, ${nome[*]} espande a una singola parola col valore di  ogni
       elemento  dell'array  separato dal primo carattere della variabile spe-
       ciale IFS , e ${nome[@]} espande ogni elemento di nome come una  parola
       separata.   Quando non c' l'elemento di array, ${nome[@]}  espanso alla
       stringa nulla.  Se l'espansione quotata con virgolette si trova  dentro
       una  parola,  l'espansione  del  primo  parametro   legato con la parte
       iniziale della parola originale, e l'espansione  dell'ultimo  parametro
       legato  con  l'ultima  parte  della  parola originale.  Questo  analogo
       all'espansione dei parametri speciali * e @ (si veda Parametri speciali
       sopra).  ${#nome[subscript]}  espande  alla  lunghezza  di  ${nome[sub-
       script]}.  Se subscript  * o @, l'espansione   il  numero  di  elementi
       dell'array.  Referenziare una variabile array senza specificare un sub-
       script equivale a referenziare il suo elemento zero.

       Il comando incorporato unset
        usato per annullare gli array. unset  nome[subscript]  annulla  l'ele-
       mento  di  array  a  indice subscript.  Bisogna stare attenti a evitare
       effetti collaterali indesiderati causati dalla generazione di  un  nome
       di  file.   unset  nome,  dove nome  un array, o unset nome[subscript],
       dove subscript  * o @, rimuove l'intero array.

       Ciascuno dei comandi incorporati  declare,  local  e  readonly  accetta
       un'opzione  -a  per  specificare un array.  Il comando incorporato read
       accetta un'opzione -a per assegnare a un  array  una  lista  di  parole
       lette  dallo  standard  input.   I  comandi  incorporati  set e declare
       mostrano i valori di array in modo che da  essere  riutilizzabili  come
       assegnamenti.

ESPANSIONE

       L'espansione   effettuata  sulla  riga  di comando dopo che essa  stata
       divisa in parole.  Vi sono sette tipi di espansione effettuati:  espan-
       sione  delle  parentesi  graffe,  espansione della tilde, espansione di
       parametro e variabile, sostituzione di comando, espansione  aritmetica,
       suddivisione in parole ed espansione di percorso.

       L'ordine  di espansione : espansione delle parentesi graffe, espansione
       della tilde, espansione di parametro, di variabile e aritmetica e  sos-
       tituzione  di  comando  (fatta  da  sinistra a destra), suddivisione in
       parole ed espansione di percorso.

       Sui sistemi che la supportano,  disponibile  un'espansione  aggiuntiva:
       la sostituzione di processo.

       Solo  l'espansione  delle parentesi graffe, la suddivisione in parole e
       l'espansione  di  percorso  possono  cambiare  il  numero   di   parole
       dell'espansione;  le  altre  espansioni espandono una singola parola in
       una singola parola.  La sola eccezione a questo  l'espansione di ``$@''
       e "${nome[@]}" come spiegato sopra (si veda PARAMETRI).

   Espansione delle parentesi graffe
       Espansione delle parentesi graffe
        un  meccanismo  con  il  quale  possono essere generate stringhe arbi-
       trarie.  Questo meccanismo  simile all'espansione di percorso,  ma  non
       necessario che i file il cui nome  generato esistano.  I modelli cui si
       applica l'espansione delle parentesi graffe hanno la forma di un pream-
       bolo  opzionale, seguito da una serie di stringhe separate da virgola o
       una espressione di sequenza racchiusa fra parentesi graffe, seguite  da
       un'  appendice  opzionale.   Il preambolo  preposto a ogni stringa con-
       tenuta dentro le parentesi graffe e  l'appendice   poi  appesa  a  ogni
       stringa risultante, espandendo da sinistra a destra.

       Le  espansioni  delle  parentesi  graffe possono essere nidificate.  Il
       risultato di ogni  stringa  espansa  non  viene  ordinato;   conservato
       l'ordine  da  sinistra  a destra.  Per esempio, a{d,c,b}e si espande in
       `ade ace abe'.

       Un'espressione di sequenza prende la forma {x..y}, dove x e  y  sono  o
       numeri  interi  o  caratteri singoli.  Se si specificano numeri interi,
       l'espressione espande a ogni numero fra x e y, incluso.  Se si specifi-
       cano  caratteri  l'espressione espande a ogni carattere lessicografica-
       mente compreso fra x e y, incluso.  Da notare che entrambi x e y devono
       essere dello stesso tipo.

       L'espansione  delle  parentesi  graffe   effettuata  prima di qualsiasi
       altra espansione, e qualunque carattere speciale  per uso  delle  altre
       espansioni  viene  lasciato  com'era nel risultato.  Essa  strettamente
       testuale.  Bash non applica alcuna interpretazione sintattica  al  con-
       testo dell'espansione o al testo tra parentesi graffe.

       Un'espansione  delle  parentesi  graffe correttamente formata deve con-
       tenere una parentesi graffa di apertura e una di chiusura, non quotate,
       e almeno una virgola non quotata.  Qualunque espansione delle parentesi
       graffe erroneamente formata  lasciata inalterata.  Una { o , pu  essere
       quotata  con  un  backslash  per evitare che venga considerata parte di
       un'espressione  fra  parentesi  graffe.   Per  evitare  conflitti   con
       l'espansione  di  parametro,  la  stringa ${ non d luogo all'espansione
       delle parentesi graffe.

       Questo costrutto  tipicamente usato come abbreviazione quando  il  pre-
       fisso  comune  delle  stringhe  da  generare  pi lungo che negli esempi
       sopra:

              mkdir /usr/local/src/bash/{old,new,dist,bugs}
       o
              chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

       L'espansione delle parentesi graffe introduce una lieve  incompatibilit
       con  le versioni tradizionali di sh.  sh non tratta le parentesi graffe
       aperte e chiuse, specialmente quando esse appaiono come  parte  di  una
       parola,  e  le  conserva  in  uscita.  Bash rimuove le parentesi graffe
       dalle parole come consequenza dell'espansione delle  parentesi  graffe.
       Per  esempio,  una  parola  data  a  sh  come file{1,2} appare identica
       nell'output.  La stessa parola  data in output come  file1  file2  dopo
       l'espansione operata da bash.

       Se  si  desidera  una  stretta  compatibilit  con  sh si avvia bash con
       l'opzione +B o si disabilita l'espansione delle  parentesi  graffe  con
       l'opzione +B al comando set (si veda COMANDI INCORPORATI DELLA SHELL pi
       avanti).

   Espansione della tilde
       Se una parola comincia con un carattere tilde (`~') non quotato,  tutti
       i  caratteri  che  precedono  la prima barra [/] non quotata (o tutti i
       caratteri, se non vi  alcuna barra) sono considerati un prefisso tilde.
       Se nessuno dei caratteri nel prefisso tilde
        quotato,  i caratteri nel prefisso tilde che segue la tilde sono trat-
       tati come un possibile nome di login.  Se  questo  nome  di  login   la
       stringa  nulla,  la tilde  sostituita con il valore del parametro HOME.
       Se  HOME  viene  annullato,   invece  sostituita  la   home   directory
       dell'utente  che sta eseguendo la shell.  Altrimenti, il prefisso tilde
       sostituito con la home directory associata al nome  di  login  specifi-
       cato.

       Se  il  prefisso  tilde  un `~+' il valore della variabile di shell PWD
       sostituisce il prefisso tilde.  Se il prefisso tilde  un `~-', il  val-
       ore  della  variabile  di shell OLDPWD, se impostato, viene sostituito.
       Se il carattere che segue la tilde nel prefisso tilde  un numero N, con
       un  prefisso  opzionale   `+' o  `-', il prefisso tilde  sostituito dal
       corrispondente elemento dallo stack di directory, come dovrebbe  essere
       mostrato  dal comando incorporato dirs invocato col prefisso tilde come
       argomento.  Se il carattere che segue la tilde nel prefisso  tilde   un
       numero non preceduto da un segno `+' o `-', viene assunto `+'

       Se  il nome di login non  valido o l'espansione della tilde non ha suc-
       cesso, la parola rimane invariata.

       Ogni assegnamento di variabile  controllato per prefissi tilde non quo-
       tati  che  seguono  immediatamente  un  : o il primo =.  In questi casi
       viene effettuata l'espansione della tilde.  Di conseguenza, si  possono
       usare nomi di file con delle tilde negli assegnamenti a PATH, MAILPATH,
       e CDPATH, e la shell assegna il valore espanso.

   Espansione di parametro
       Il carattere `$' introduce l'espansione di parametro,  la  sostituzione
       di comando, o l'espansione aritmetica.  Il nome o simbolo del parametro
       che dev'essere espanso pu essere racchiuso tra  parentesi  graffe,  che
       sono  opzionali  ma  servono  a proteggere la variabile che deve essere
       espansa dai caratteri immediatamente seguenti,  che  potrebbero  essere
       interpretati come parte del nome [della variabile stessa].

       Quando  vengono  usate  le parentesi graffe, la parentesi graffa finale
       corrispondente  la prima `}' non protetta da un backslash o da stringhe
       quotate, e non parte di un'espansione aritmetica inclusa, di una sosti-
       tuzione di comando o di un'espansione di parametro.

       ${parametro}
              Il valore di parametro  sostituito.  Le  parentesi  graffe  sono
              richieste quando parametro
               un  parametro  posizionale  con  pi  di  una  cifra [ossia 10 e
              oltre], o quando parametro
               seguito da un carattere che non deve essere  interpretato  come
              parte del suo nome.

       Se il primo carattere di parametro  un punto esclamativo,
        introdotto  un  livello  di  indirezione della variabile.  Bash usa il
       valore della variabile formata dal resto del  parametro  come  nome  di
       variabile; questa variabile  poi espansa e quel valore  usato nel resto
       della sostituzione,  piuttosto  che  il  valore  stesso  di  parametro.
       Questa   conosciuta  come espansione indiretta.  Le eccezioni a ci sono
       le espansioni di ${!prefisso*} e ${!nome[@]} descritte pi  avanti.   Il
       punto  esclamativo  deve  seguire  immediatamente  la  parentesi graffa
       iniziale per introdurre l'indirezione.

       In ognuno dei casi sotto riportati, parola  soggetta a espansione della
       tilde,  espansione  di parametro, sostituzione di comando ed espansione
       aritmetica.  Quando non sta effettuando l'espansione della  substringa,
       Bash  controlla se un parametro non  impostato o nullo; l'omissione dei
       due punti provoca il solo controllo di un parametro non impostato.

       ${parametro:-parola}
              Usa i valori di default.  Se parametro non  impostato o   nullo,
              sostituita  l'espansione  di  parola.   Altrimenti, il valore di
              parametro
               sostituito
       ${parametro:=parola}
              Assegna i valori di default.   Se  parametro  non   impostato  o
              nullo, l'espansione di parola
               assegnata a parametro.  Il valore di parametro
               quindi  sostituito.  I parametri posizionali e i parametri spe-
              ciali non possono essere assegnati in questo modo.
       ${parametro:?parola}
              D una segnalazione di errore se  nullo o  stato  annullato.   Se
              parametro
               nullo  o  stato annullato, l'espansione di parola (o un messag-
              gio di segnalazione, se  parola  non   presente)  viene  scritta
              sullo  standard  error  e la shell, se non interattiva, termina.
              Altrimenti,  sostituito il valore di parametro.
       ${parametro:+parola}
              Usa un valore alternativo.  Se parametro
               nullo o  stato annullato, non  sostituito niente, altrimenti
               sostituita l'espansione di parola .
       ${parametro:offset}
       ${parametro:offset:lunghezza}
              Espansione di substringa.  Espande i caratteri di parametro fino
              a  lunghezza  partendo  dal carattere specificato da offset.  Se
              lunghezza viene omesso, espande  alla  substringa  di  parametro
              partendo  dal carattere specificato da offset.  lunghezza e off-
              set sono espressioni aritmetiche (si veda VALUTAZIONE ARITMETICA
              pi avanti).  lunghezza deve essere un numero maggiore o uguale a
              zero.  Se offset  un numero minore  di  zero,  il  valore  viene
              usato  come  un  offset  dalla fine del valore di parametro.  Se
              parametro  @, il risultato  un numero di  parametri  posizionali
              pari  a lunghezza a partire da offset.  Se parametro  un nome di
              array indicizzato da @ o *, il risultato  un numero di  elementi
              dell'array  pari  a lunghezza a partire da ${parametro[offset]}.
              Un offset negativo   inteso  come  relativo  al  massimo  indice
              dell'array  specificato  aumentato di uno.  Notare che un offset
              negativo dev'essere separato dai due punti da almeno uno  spazio
              per  evitare di essere confuso con l'espansione di :- .  L'indi-
              cizzazione della substringa  a base zero a meno che non  vengano
              usati  i  parametri  posizionali, nel qual caso l'indicizzazione
              parte da 1.

       ${!prefisso*}
       ${!prefisso@}
              Espande ai nomi delle variabili i cui  nomi  iniziano  con  pre-
              fisso, separati dal primo carattere della variabile speciale IFS

       ${!nome[@]}
       ${!nome[*]}
              Se nome  una variabile di array, espande alla lista degli indici
              di  array  (chiavi)  assegnati  in nome.  Se nome non  un array,
              espande a 0 se nome  impostato  ed   nullo  in  caso  contrario.
              Quando  @  usato e l'espansione appare fra virgolette, ogni chi-
              ave espande a una parola separata.

       ${#parametro}
               sostituita la lunghezza in caratteri del valore  di  parametro.
              Se parametro

              * o @, il valore sostituito  il numero di parametri posizionali.
              Se parametro
               un nome di array contrassegnato da * o @, il valore  sostituito
              il numero di elementi nell'array.

       ${parametro#parola}
       ${parametro##parola}
              La parola
               espansa per produrre un modello proprio come nell'espansione di
              percorso.  Se il modello trova una corrispondenza  con  l'inizio
              del valore di parametro, allora il risultato dell'espansione  il
              valore espanso di parametro con il pi corto dei modelli che cor-
              rispondono  cancellato  (nel  caso  di ``#'' ) o il pi lungo dei
              modelli che corrispondono cancellato (nel caso di ``##'' ).   Se
              parametro

              @ o *, l'operazione di rimozione del modello  applicata di volta
              in volta a ogni parametro posizionale, e l'espansione  la  lista
              che ne risulta.  Se parametro
               una  variabile  di  array  con  indice  @  o *, l'operazione di
              rimozione  del  modello   applicata  a  ognuno  degli   elementi
              dell'array, e l'espansione  la lista risultante.

       ${parametro%parola}
       ${parametro%%parola}
              La   parola   espansa  per  produrre  un  modello  proprio  come
              nell'espansione di percorso.  Se il modello  corrisponde  a  una
              parte  finale  del  valore  espanso  di  parametro, il risultato
              dell'espansione  il valore espanso di parametro con il pi  corto
              dei  modelli corrispondenti cancellato (nel caso di ``%'' ) o il
              pi lungo dei modelli  corrispondenti  cancellato  (nel  caso  di
              ``%%'').  Se parametro

              @ o *, l'operazione di rimozione del modello  applicata a ognuno
              dei parametri posizionali, e l'espansione  la lista  risultante.
              Se parametro
               una  variabile  di  array  con  indice  @  o *, l'operazione di
              rimozione  del  modello   applicata  a  ognuno  degli   elementi
              dell'array, e l'espansione  la lista risultante.

       ${parametro/modello/stringa}
              Il  modello   espanso  per  produrre  un  modello  proprio  come
              nell'espansione di percorso.  Parametro  espanso e il suo valore
              pi  lungo che corrisponde a modello  sostituito con stringa.  Se
              modello comincia con /, tutte le corrispondenze di modello  sono
              sostituite  con  stringa.   Normalmente viene sostituita solo la
              prima corrispondenza.  Se modello  comincia  con  #,  deve  cor-
              rispondere  all'inizio del valore espanso di parametro.  Se mod-
              ello inizia con %,  deve  corrispondere  alla  fine  del  valore
              espanso  di  parametro.  Se stringa  nulla, le corrispondenze di
              modello sono cancellate e la  /  che  segue  modello  pu  essere
              omessa.  Se parametro

              @  o  *,  l'operazione  di  sostituzione  applicata a ognuno dei
              parametri posizionali, e l'espansione  la lista risultante.   Se
              parametro
               una variabile di array con indice @ o *, l'operazione di sosti-
              tuzione   applicata  a  ognuno  degli  elementi  dell'array,   e
              l'espansione  la lista risultante.

   Sostituzione di comando
       La  sostituzione  di  comando  permette  che  l'output  di  un  comando
       rimpiazzi il nome del comando.  Vi sono due forme:


              $(comando)
       o
              `comando`

       Bash effettua l'espansione eseguendo il comando e rimpiazzando la  sos-
       tituzione  di comando con lo standard output del comando, con ogni new-
       line finale cancellato.  I newline intermedi non vengono cancellati, ma
       possono  essere  rimossi  durante la suddivisione in parole.  La sosti-
       tuzione di comando $(cat file) pu essere sostituita dall'equivalente ma
       pi veloce $(< file).

       Quando   usata  la forma di sostituzione in vecchio stile con gli apici
       rovesciati, il backslash conserva il suo significato  letterale  tranne
       quando   seguito  da $, ` o \.  Il primo apice rovesciato non preceduto
       da un backslash fa terminare la sostituzione di comando.  Quando si usa
       la  forma  $(comando),  tutti  i  caratteri tra le parentesi formano il
       comando; nessuno considerato speciale.

       La sostituzione di comando pu essere nidificata.  Per nidificare quando
       si  usa  la  forma  con gli apici rovesciati, bisogna far precedere gli
       apici rovesciati pi interni con un carattere backslash di protezione.

       Se la sostituzione appare tra virgolette, la suddivisione in  parole  e
       l'espansione di percorso non sono effettuate sui risultati.

   Espansione aritmetica
       L'espansione  aritmetica  permette  la  valutazione  di una espressione
       aritmetica e la sostituzione del risultato.  Il  formato  per  l'espan-
       sione aritmetica :

              $((espressione))

       L' espressione
        trattata come se fosse tra virgolette, ma le virgolette dentro le par-
       entesi non sono trattate in modo speciale.  Tutti i token  dell'espres-
       sione  sono  assoggettati  a  espansione  di  parametro,  espansione di
       stringa, sostituzione di comando e  rimozione  dei  caratteri  di  quo-
       tatura.  Le espansioni aritmetiche possono essere nidificate.

       Il  calcolo   effettuato  in  accordo  con le regole elencate pi avanti
       sotto VALUTAZIONE ARITMETICA.  Se espressione non  valida, bash  stampa
       un  messaggio  che indica l'errore e non viene effettuata alcuna sosti-
       tuzione.

   Sostituzione di processo
       La sostituzione di processo  supportata su sistemi  che  supportano  le
       named  pipe  (FIFO)  o  il metodo /dev/fd per denominare i file aperti.
       Essa prende la forma di <(lista) o  >(lista).   La  lista  di  processi
       eseguita  con il suo input o output connesso a un FIFO o ad alcuni file
       in /dev/fd.  Il nome di questo file passato come argomento  al  comando
       corrente  come risultato dell'espansione.  Se  usata la forma >(lista),
       la scrittura sul file fornisce input per la lista.  Se  usata la  forma
       <(lista),  il  file  passato  come  argomento dovrebbe essere letto per
       ottenere l'output di lista.

       Su sistemi che la supportano, la sostituzione  di  processo  effettuata
       allo  stesso momento dell'espansione di parametro e di variabile, della
       sostituzione di comando e dell'espansione aritmetica.

   Suddivisione in parole
       La shell scandisce il risultato dell'espansione  di  parametro,  sosti-
       tuzione di comando ed espansione aritmetica che non si trovano tra vir-
       golette, per effettuare la suddivisione in parole.

       La shell tratta ogni carattere di IFS come un delimitatore, e suddivide
       in  parole,  in corrispondenza con uno di questi caratteri, i risultati
       delle altre espansioni.  Se il valore di IFS non  impostato  o  il  suo
       valore
        esattamente  <space><tab><newline>,  il  valore  di default, qualsiasi
       sequenza di caratteri IFS serve per delimitare le parole.  Se IFS ha un
       valore  diverso  da  quello di default, allora sequenze di caratteri di
       spaziatura space e tab sono  ignorate  all'inizio  e  alla  fine  della
       parola,  se  il carattere di spaziatura  presente nel valore di IFS (un
       carattere di spaziatura IFS ).  Qualunque carattere in IFS che non   un
       carattere  di  spaziatura  IFS,  insieme  con  qualsiasi  carattere  di
       spaziatura IFS adiacente, delimita un campo.  Una sequenza di caratteri
       di spaziatura IFS
        anche trattata come un delimitatore.  Se il valore di IFS
        nullo, non avviene alcuna suddivisione in parole.

       Argomenti  esplicitamente  nulli(""  or '') sono conservati.  Argomenti
       non  quotati  implicitamente  nulli,  risultanti   dall'espansione   di
       parametri  con  valore nullo, sono rimossi.  Se un parametro con valore
       nullo  espanso fra virgolette,  considerato un argomento nullo e  viene
       rimosso.

        da  notare  che  se non avviene alcuna espansione non viene effettuata
       alcuna suddivisione.

   Espansione di percorso
       Dopo la suddivisione in parole, a meno  che  non  sia  stata  impostata
       l'opzione -f, bash scandisce ogni parola alla ricerca di caratteri *, ?
       e [.  Se uno di questi caratteri  presente, allora la parola  consider-
       ata  come un modello, e sostituita con una lista, in ordine alfabetico,
       di nomi di file che corrispondono al modello.  Se nessun nome  di  file
       corrispondente viene trovato, e l'opzione di shell nullglob
        disabilitata, la parola  lasciata inalterata.  Se l'opzione nullglob
        impostata,  e nessuna corrispondenza  trovata, la parola  rimossa.  Se
       l'opzione di shell failglob
        impostata, e non viene trovata alcuna corrispondenza,  viene  stampato
       un  messaggio  di errore e il comando non viene eseguito.  Se l'opzione
       di shell nocaseglob
        abilitata, il confronto  effettuato senza distinzione fra maiuscole  e
       minuscole  nei  caratteri  alfabetici.   Quando  un  modello  usato per
       l'espansione di percorso, il carattere ``.''  all'inizio di un  nome  o
       immediatamente  dopo  una  barra [/] deve essere confrontato esplicita-
       mente, a meno che l'opzione di shell globdot non sia impostata.  Quando
       si  confronta  un  percorso,  il carattere barra [/] deve sempre essere
       confrontato esplicitamente.  Negli altri casi, il carattere ``.''   non
       trattato  in  modo  speciale.  Vedere la descrizione di shopt pi avanti
       sotto COMANDI INCORPORATI DELLA SHELL per una descrizione delle opzioni
       di shell nocaseglob, nullglob, failglob e dotglob .

       La  variabile  di  shell  GLOBIGNORE pu essere usata per restringere la
       serie di nomi di file che corrispondono a un modello.  Se GLOBIGNORE
        impostato, ogni nome di file da confrontare che  corrisponde  anche  a
       uno dei modelli in GLOBIGNORE
        rimosso  dalla lista dei nomi che corrispondono al modello.  I nomi di
       file ``.''  e ``..''  sono sempre ignorati quando GLOBIGNORE
        impostato e non nullo.  Comunque, impostare GLOBIGNORE a un valore non
       nullo  ha  l'effetto  di  abilitare l'opzione di shell dotglob , cos da
       cercare una corrispondenza  con  tutti  gli  altri  nomi  di  file  che
       iniziano  con  un ``.''  Per ottenere il comportamento (usato in prece-
       denti versioni) di ignorare i nomi di file che iniziano con  ``.'',  si
       deve fare un modello ``.*''  in GLOBIGNORE.  L'opzione dotglob
        disabilitata quando GLOBIGNORE viene annullato.

       Modelli di ricerca / espressioni regolari

       Ogni  carattere che appare in un modello (espressione regolare), tranne
       quelli speciali descritti qui  sotto,  corrisponde  a  se  stesso.   Il
       carattere  NULL  non pu far parte di un'espressione regolare.  Un back-
       slash segnala come speciale il carattere che segue; il backslash  igno-
       rato  durante  il  confronto.   I caratteri speciali del modello devono
       essere racchiusi tra apici se si vuole che siano considerati  cos  come
       sono scritti.

       I caratteri speciali nelle espressioni regolari hanno i seguenti signi-
       ficati:

       *      Corrisponde a qualsiasi stringa, inclusa la stringa nulla.
       ?      Corrisponde a qualsiasi carattere singolo.
       [...]  Corrisponde a uno qualsiasi dei  caratteri  racchiusi  fra  par-
              entesi  quadre.   Una  coppia  di caratteri separati da un segno
              meno denota un' espressione di intervallo,  che  individua  ogni
              carattere  che  si  trova  tra  quei  due caratteri, essi stessi
              inclusi, usando la sequenza di ordinamento della  localizzazione
              corrente.  Se il primo carattere che segue il [
               un  !   o  un  ^  allora  qualsiasi  carattere  non specificato
              ritenuto corrispondente.  L'ordine di ordinamento dei  caratteri
              nell'espressione  di intervallo determinato dalla localizzazione
              corrente e dal valore della variabile di  shell  LC_COLLATE,  se
              impostata.  Un - pu essere specificato includendolo come primo o
              ultimo carattere nella  lista.   Una  ]  pu  essere  specificata
              includendola come primo carattere nella lista.

              All'interno  di  [  e  ],  possono  essere specificate classi di
              caratteri usando la sintassi [:classe:], dove classe  una  delle
              seguenti classi definite nello standard POSIX:
              alnum  alpha  ascii  blank  cntrl  digit graph lower print punct
              space upper word xdigit
              Una classe di caratteri trova una corrispondenza  con  qualsiasi
              carattere  appartenente a quella classe.  La classe di caratteri
              word individua lettere, cifre e il carattere _ .

              All'interno di [ e ] pu essere specificata una classe di  equiv-
              alenza  con  la  sintassi [=c=], che individua tutti i caratteri
              con lo stesso grado di ordinamento (come definito dalla localiz-
              zazione corrente) del carattere c.

              All'interno di [ e ] la sintassi [.symbol.] individua il simbolo
              di ordinamento symbol.

       Se l'opzione di shell extglob  abilitata col comando incorporato shopt,
       vengono  riconosciuti  diversi operatori estesi che descrivono modelli.
       Nella descrizione seguente, una pattern-list  una lista  di  uno  o  pi
       modelli  separati  da  una  |.  Possono essere formati modelli composti
       usando uno o pi dei seguenti submodelli:

              ?(pattern-list)
                     Individua zero o una occorrenza dei modelli specificati
              *(pattern-list)
                     Individua zero o pi occorrenze dei modelli specificati
              +(pattern-list)
                     Individua una o pi occorrenze dei modelli specificati
              @(pattern-list)
                     Individua uno dei modelli specificati
              !(pattern-list)
                     Individua qualsiasi cosa eccetto uno dei modelli specifi-
                     cati

   Rimozione dei caratteri di quotatura
       Dopo  le  precedenti  espansioni,  tutte  le occorrenze non quotate dei
       caratteri \, ' e " non originate da una delle espansioni di  cui  sopra
       sono rimosse.

RIDIREZIONE

       Prima che un comando sia eseguito, i suoi input e output possono essere
       ridiretti usando una speciale notazione interpretata dalla  shell.   La
       ridirezione  pu  anche  essere  usata  per  aprire  e chiudere file per
       l'ambiente di esecuzione della shell corrente.  I seguenti operatori di
       ridirezione   possono  precedere  o  apparire  in  qualsiasi  posizione
       all'interno di un comando semplice o possono venire  dopo  un  comando.
       Le ridirezioni sono elaborate nell'ordine in cui compaiono, da sinistra
       a destra.

       Nelle seguenti descrizioni, se il numero di descrittore di file omesso,
       e il primo carattere dell'operatore di ridirezione <, la ridirezione si
       riferisce allo standard input (descrittore di file  0).   Se  il  primo
       carattere  dell'operatore di ridirezione >, la ridirezione si riferisce
       allo standard output (descrittore di file 1).

       La  parola  che  segue  l'operatore  di  ridirezione   nelle   seguenti
       descrizioni,  se non diversamente specificato,  sottoposta a espansione
       delle  parentesi  graffe,  espansione  della   tilde,   espansione   di
       parametro,  sostituzione  di  comando, espansione aritmetica, rimozione
       dei caratteri di quotatura, espansione dei percorsi e  suddivisione  in
       parole.   Se  si  espande a pi di una parola bash d una segnalazione di
       errore.

        da notare che l'ordine delle ridirezioni  significativo.  Per esempio,
       il comando

              ls > dirlist 2>&1

       dirige  sia  lo standard output che lo standard error sul file dirlist,
       mentre il comando

              ls 2>&1 > dirlist

       dirige solo lo standard output sul  file  dirlist,  poich  lo  standard
       error   stato duplicato come standard output prima che lo standard out-
       put fosse ridiretto su dirlist.

       Bash manipola parecchi nomi di file specialmente quando sono  usati  in
       ridirezioni, come descritto nella tavola seguente:

              /dev/fd/fd
                     Se  fd   un  intero  valido,  il  descrittore  di file fd
                     duplicato.
              /dev/stdin
                     Il descrittore di file 0  duplicato.
              /dev/stdout
                     Il descrittore di file 1  duplicato.
              /dev/stderr
                     Il descrittore di file 2  duplicato.
              /dev/tcp/host/porta
                     Se host  un nome di host valido o un indirizzo  Internet,
                     e  porta   un  numero  intero  di  porta  o il nome di un
                     servizio, bash tenta di aprire  una  connessione  TCP  al
                     socket corrispondente.
              /dev/udp/host/porta
                     Se  host  un nome di host valido o un indirizzo Internet,
                     e porta  un numero intero  di  porta  o  il  nome  di  un
                     servizio,  bash  tenta  di  aprire una connessione UDP al
                     socket corrispondente.

       L'insuccesso nell'aprire o creare un file determina l'insuccesso  della
       ridirezione.

       Ridirezioni  con  descrittori  di  file maggiori di 9 dovrebbero essere
       usate con attenzione, poich possono entrare in conflitto  coi  descrit-
       tori di file usati internamente dalla shell.

   Ridirezione dell'input
       La  ridirezione  dell'input  fa  s  che  il  file  il  cui nome risulta
       dall'espansione di parola venga aperto in lettura  sul  descrittore  di
       file  n, o come standard input (descrittore di file 0) se n non  speci-
       ficato.

       Il formato generico per ridirigere l'input :

              [n]<parola

   Ridirezione dell'output
       La ridirezione dell'output fa  s  che  il  file  il  cui  nome  risulta
       dall'espansione  di parola venga aperto in scrittura sul descrittore di
       file n, o come standard output (descrittore di file 1) se n non  speci-
       ficato.    Se  il  file  non  esiste  viene  creato;  se  esiste  viene
       sovrascritto, come se fosse di dimensione zero.

       Il formato generico per ridirigere l'output :

              [n]>parola

       Se l'operatore di ridirezione >,  e  l'opzione  noclobber  del  comando
       incorporato set
        stata abilitata, la ridirezione non ha successo se il file il cui nome
       risulta dall'espansione di parola  esiste  ed  un  file  regolare.   Se
       l'operatore  di  ridirezione  >|,  o  l'operatore  di  ridirezione  > e
       l'opzione noclobber del comando  incorporato  set  non   abilitata,  la
       ridirezione  tentata anche se il file denominato da parola esiste.

   Accodare l'output ridiretto
       La  ridirezione  dell'output  in questo modalit fa s che il file il cui
       nome risulta dall'espansione di parola venga aperto  per  accodare  sul
       descrittore  di file n, o sullo standard output (descrittore di file 1)
       se n non  specificato.  Se il file non esiste viene creato.

       Il formato generico per accodare l'output :

              [n]>>parola


   Ridirezione di standard output e standard error
       Bash permette, con questo costrutto, che l'output sia lo standard  out-
       put  (descrittore  di file 1) che quello dello standard error (descrit-
       tore  di  file  2)  siano  ridiretti  sul  file  il  cui  nome  risulta
       dall'espansione di parola.

       Vi  sono  due  formati  per ridirigere lo standard output e lo standard
       error:

              &>parola
       e
              >&parola

       Delle due forme, la prima  quella  preferita.   Questo   semanticamente
       equivalente a

              >parola 2>&1

   Here Document
       Questo  tipo  di  ridirezione  istruisce  la  shell  a  leggere l'input
       dall'input corrente, finch non venga  incontrata  una  riga  contenente
       solo parola (senza alcun carattere blank dopo la parola stessa).  Tutte
       le righe lette fino a quel punto sono quindi usate come standard  input
       per un comando.

       Il formato degli here-document  il seguente:

              <<[-]parola
                      here-document
              delimitatore

       Nessuna  espansione  di  parametro, sostituzione di comando, espansione
       aritmetica o espansione di  percorso   effettuata  su  parola.   Se  un
       carattere qualsiasi in parola
        quotato, il delimitatore
        il  risultato  della rimozione dei caratteri di quotatura da parola, e
       le righe nel here-document non vengono espanse.  Se  parola  non   quo-
       tata,  tutte  le  righe del here-document sono soggette a espansione di
       parametro,  sostituzione  di  comando  ed  espansione  aritmetica.   In
       quest'ultimo caso, la coppia \<newline>
        ignorata, e \ deve essere usata per quotare i caratteri \, $, e `.

       Se  l'operatore di ridirezione <<-, tutti i caratteri tab a inizio riga
       sono eliminati dalle righe in input e dalla riga che contiene delimita-
       tore.   Questo permette che un here-document dentro uno script di shell
       possa essere indentato in maniera naturale.

   Here String
       Una variante degli here document, il formato :

              <<<parola

       La parola  espansa ed  passata al comando come suo standard input.

   Duplicazione dei descrittori di file
       L'operatore di ridirezione

              [n]<&parola

        usato per duplicare descrittori  di  file  di  input.   Se  parola  si
       espande in una o pi cifre, il descrittore di file indicato da n
        fatto diventare una copia di quel descrittore di file.  Se le cifre in
       parola non specificano un descrittore di file aperto  per  l'input,  si
       verifica  un  errore  di  ridirezione.   Se parola risulta essere, dopo
       l'espansione, -, il descrittore di file  n  viene  chiuso.   Se  n  non
       specificato,  usato lo standard input (descrittore di file 0).

       L'operatore

              [n]>&parola

        usato  in  modo analogo per duplicare i descrittori di file di output.
       Se n non  specificato,  usato lo standard output (descrittore  di  file
       1).   Se  le  cifre  in  parola  non specificano un descrittore di file
       aperto in output, si verifica un errore di ridirezione.  Come caso spe-
       ciale, se n  omesso, e parola non si espande a una o pi cifre, lo stan-
       dard output e lo standard error sono ridiretti come descritto in prece-
       denza.

   Muovere i descrittori di file
       L'operatore di ridirezione

              [n]<&cifra-

       muove  il  descrittore  di  file cifra al descrittore di file n, o allo
       standard input (descrittore di file 0) se n  non   specificato.   cifra
       chiuso dopo essere stato duplicato in n.

       Analogamente l'operatore di ridirezione

              [n]>&cifra-

       muove  il  descrittore  di  file cifra al descrittore di file n, o allo
       standard output (descrittore di file 1) se n non  specificato.

   Apertura di descrittori di file per lettura e scrittura
       L'operatore di ridirezione

              [n]<>parola

       fa s che il file il cui nome  l'espansione di parola venga  aperto  sia
       in  lettura  che in scrittura sul descrittore di file n, o sul descrit-
       tore di file 0 se n non  specificato.  Se il  file  non  esiste,  viene
       creato.

ALIAS

       Gli  alias consentono di sostituire una stringa con una parola se usata
       come prima parola di un comando semplice.  La shell mantiene una  lista
       di  alias che possono essere impostati e rimossi con i comandi incorpo-
       rati alias e unalias  (si  veda  COMANDI  INCORPORATI  DELLA  SHELL  pi
       avanti).   La  prima parola di ogni comando, se non quotata, viene con-
       trollata per vedere se a essa  associato un alias.  Se  questo il caso,
       la  parola  sostituita dal valore dell'alias.  I caratteri /, $, ` e =,
       e ognuno dei metacaratteri della shell o i caratteri di quotatura elen-
       cati  sopra non possono apparire in un nome di alias.  Il testo da sos-
       tituire pu contenere qualunque input valido per  la  shell,  inclusi  i
       metacaratteri  della  shell.   La prima parola del testo cos sostituito
       controllata per vedere se contiene alias, ma una  parola  che  coincide
       con  l'alias che si sta espandendo non viene espansa una seconda volta.
       Questo significa che si pu far interpretare ls come ls -F, per esempio,
       e  bash  non  tenta di espandere ulteriormente il testo cos sostituito.
       Se l'ultimo carattere del valore di un alias  un blank, allora la  suc-
       cessiva  parola  di  comando  che  segue  l'alias  pure controllata per
       l'espansione di alias.

       Gli alias sono creati ed elencati con il comando alias e rimossi con il
       comando unalias.

       Non  vi   alcun meccanismo per usare argomenti nel testo da sostituire.
       Se servono degli argomenti, si dovr usare una  funzione  di  shell  (si
       veda.  FUNZIONI pi avanti).

       Gli alias non sono espansi quando la shell non  interattiva, a meno che
       l'opzione di shell expand_aliases non sia impostata mediante shopt  (si
       veda  la  descrizione  di  shopt  sotto COMANDI INCORPORATI DI SHELL pi
       avanti).

       Le regole che riguardano la definizione e  l'uso  degli  alias  possono
       facilmente generare confusione.  Bash legge sempre almeno una riga com-
       pleta di input prima di eseguire qualsiasi comando di quella riga.  Gli
       alias  sono  espansi  quando  un  comando  letto, non quando  eseguito.
       Perci, una definizione di alias che appaia sulla una riga che  contiene
       gi  un altro comando non ha effetto fino a che non  stata letta la suc-
       cessiva riga di input.  I comandi che  seguono  la  definizione  di  un
       alias  su una data riga non sono influenzati da un nuovo alias.  Questo
       comportamento  un problema anche quando sono eseguite  delle  funzioni.
       Gli  alias sono espansi quando viene letta una definizione di funzione,
       non quando la funzione  eseguita, poich  una  definizione  di  funzione
       essa  stessa un comando composto.  Come conseguenza, gli alias definiti
       in una funzione sono disponibili solo dopo che  quella  funzione   ese-
       guita.   Per maggior sicurezza, conviene porre sempre le definizioni di
       alias su una riga separata e non usare alias in comandi composti.

       Quasi a tutti gli effetti, le finalit per cui sono usati gli alias pos-
       sono essere raggiunte usando invece funzioni di shell.

FUNZIONI

       Una  funzione  di shell, definita come descritto prima sotto GRAMMATICA
       DELLA SHELL, immagazzina una serie  di  comandi  per  una  futura  ese-
       cuzione.   Quando  il nome di una funzione di shell  usato come un nome
       di comando semplice, la lista di comandi associati  con  quel  nome  di
       funzione  viene eseguita.  Le funzioni sono eseguite nel contesto della
       shell corrente; nessun nuovo processo  creato per interpretarle (a dif-
       ferenza  di  quanto avviene eseguendo uno script di shell).  Quando una
       funzione  eseguita, gli argomenti passati alla funzione costituiscono i
       parametri  posizionali  della funzione stessa.  Il parametro speciale #
       viene aggiornato per riflettere il cambiamento.  Il parametro  speciale
       0 rimane inalterato.  Il primo elemento della variabile FUNCNAME
        impostato  al nome della funzione durante l'esecuzione della funzione.
       Tutti gli altri aspetti dell'ambiente di esecuzione  della  shell  sono
       identici  tra  una  funzione e il suo chiamante ad eccezione della ges-
       tione dei segnali DEBUG e RETURN (si veda la  descrizione  del  comando
       incorporato trap sotto COMANDI INCORPORATI DI SHELL pi avanti), i quali
       non sono ereditati a meno che alla funzione sia stato dato  l'attributo
       trace  (si  veda  la  descrizione  del  comando  incorporato declare pi
       avanti) o l'opzione di shell -o functrace sia stata abilitata per mezzo
       del  comando incorporato set (nel qual caso tutte le funzioni ereditano
       la gestione dei segnali DEBUG e RETURN).

       Variabili locali alla funzione possono essere dichiarate con il comando
       incorporato local.  Di solito, le variabili e i loro valori sono condi-
       visi tra la funzione e il suo chiamante.

       Se il comando incorporato return
        eseguito in una funzione, la funzione termina e l'esecuzione  riprende
       con  il comando che viene subito dopo la chiamata di funzione.  Qualsi-
       asi comando associato con la gestione del segnale RETURN viene eseguito
       prima di riprendere l'esecuzione.  Quando una funzione termina i valori
       dei parametri posizionali e il parametro speciale #  sono  ripristinati
       ai valori che avevano prima dell'esecuzione della funzione.

       I  nomi  delle  funzioni  e  le definizioni possono essere elencati con
       l'opzione -f dei comandi incorporati declare o typeset.   L'opzione  -F
       di declare o typeset elenca solo i nomi di funzione (e opzionalmente il
       file d'origine e il numero di riga,  se  l'opzione  di  shell  extdebug
       abilitata).   Le funzioni possono essere esportate, in modo che le sub-
       shell automaticamente le trovino  gi  definite  con  l'opzione  -f  del
       comando incorporato export.  Una definizione di funzione pu essere can-
       cellata usando l'opzione -f del comando incorporato unset .  Da  notare
       che  funzioni  e  variabili  di  shell  aventi  lo  stesso nome possono
       risultare in pi elementi con lo stesso nome nell'ambiente passato  alle
       shell figlie.  Bisogna fare attenzione ai casi in cui questo pu causare
       un problema.

       Le funzioni possono essere ricorsive.  Nessun limite  posto sul  numero
       di chiamate ricorsive.

VALUTAZIONE ARITMETICA

       La  shell  permette  di  calcolare espressioni aritmetiche, sotto certe
       circostanze (si veda i comandi incorporati let e declare  e  Espansione
       aritmetica).   Il  calcolo viene fatta usando interi a larghezza fissa,
       senza controllo di supero della capacit, sebbene la divisione per 0 sia
       intercettata  e  segnalata come errore.  Gli operatori e la loro prece-
       denza, associativit e valori, sono gli stessi  del  linguaggio  C.   La
       seguente  lista  di operatori  raggruppata per operatori di uguale liv-
       ello di precedenza.  I livelli sono elencati in  ordine  di  precedenza
       decrescente.

       id++ id--
              post-incremento e post-decremento di una variabile
       ++id --id
              pre-incremento e pre-decremento di una variabile
       - +    meno e pi unari
       ! ~    negazione logica e "bit a bit"
       **     elevamento a potenza
       * / %  moltiplicazione, divisione, modulo
       + -    addizione, sottrazione
       << >>  scorrimento "bit a bit" a sinistra e a destra
       <= >= < >
              confronto
       == !=  uguaglianza e differenza
       &      AND "bit a bit"
       ^      OR esclusivo "bit a bit"
       |      OR "bit a bit"
       &&     AND logico
       ||     OR logico
       expr?expr:expr
              operatore condizionale
       = *= /= %= += -= <<= >>= &= ^= |=
              assegnamento
       expr1 , expr2
              virgola

       Le  variabili di shell possono essere usate come operandi; l'espansione
       di parametro   effettuata  prima  della  valutazione  dell'espressione.
       All'interno  di  un'espressione,  le  variabili di shell possono essere
       referenziate anche per nome senza  bisogno  di  usare  la  sintassi  di
       espansione  di  parametro.   Una  variabile di shell nulla o rimossa ha
       valore 0 se referenziata per nome senza l'uso della sintassi di  espan-
       sione  di  parametro.   Il  valore  di  una  variabile   valutato  come
       un'espressione aritmetica quando  referenziata, o quando  a  una  vari-
       abile a cui stato dato l'attributo integer con declare -i  stato asseg-
       nato un valore.  Un valore nullo viene considerato come 0.   Una  vari-
       abile  di shell non ha bisogno essere stata dichiarata intera per poter
       essere usata in un'espressione.

       Le costanti che iniziano per 0 sono interpretate  come  numeri  ottali.
       Uno  0x  o  0X iniziale si usa per indicare numeri esadecimali.  Altri-
       menti, i numeri prendono la forma [base#]n, dove base un  numero  deci-
       male  tra  2  e  64  che  definisce  la base aritmetica, e n  un numero
       espresso in quella base.  Se base#  omessa, allora  usata la  base  10.
       Le  cifre  maggiori  di  9  sono rappresentate dalle lettere minuscole,
       dalle lettere maiuscole, e da @ e  _,  in  quest'ordine.   Se  la  base
       minore  o  uguale a 36, le lettere minuscole e maiuscole possono essere
       usate indifferentemente per rappresentare numeri compresi tra 10 e  35.

       Gli operatori sono valutati in ordine di precedenza.  Le subespressioni
       tra parentesi sono valutate prima e possono prevalere sulle  regole  di
       precedenza di cui sopra.

ESPRESSIONI CONDIZIONALI

       Le  espressioni  condizionali  sono usate dal comando composto [[ e dai
       comandi incorporati test e [ per verificare attributi di file ed effet-
       tuare  comparazioni  aritmetiche  e  fra stringhe.  Le espressioni sono
       formate dalle seguenti primitive unarie o binarie.  Se qualsiasi  argo-
       mento  di  file  di  una  delle  primitive   della  forma /dev/fd/n, il
       descrittore di file n viene controllato.  Se l'argomento di file di una
       delle  primitive   uno  tra  /dev/stdin,  /dev/stdout o /dev/stderr, il
       descrittore di file 0, 1 o 2, rispettivamente, viene controllato.

       Se non diversamente specificato, le primitive che operano su file  uti-
       lizzano eventuali collegamenti simbolici e operano sul file puntato dal
       collegamento simbolico, invece che sul collegamento simbolico stesso.

       -a file
              Vero se file esiste.
       -b file
              Vero se file esiste ed  un file speciale a blocchi.
       -c file
              Vero se file esiste ed  un file speciale a caratteri.
       -d file
              Vero se file esiste ed  una directory.
       -e file
              Vero se file esiste.
       -f file
              Vero se file esiste ed  un file normale  [non  una  directory  o
              altro].
       -g file
              Vero se file esiste ed  impostato il suo bit set-group-id.
       -h file
              Vero  se  file  esiste  ed   un collegamento simbolico [symbolic
              link].
       -k file
              Vero se file ha il suo ``sticky'' bit impostato.
       -p file
              Vero se file esiste ed  una named pipe (FIFO).
       -r file
              Vero se file esiste ed  leggibile.
       -s file
              Vero se file esiste ed  di dimensione maggiore di zero byte.
       -t fd  Vero se il descrittore di file fd
               aperto e si tratta di un terminale.
       -u file
              Vero se file esiste ed  impostato il suo bit set-user-id.
       -w file
              Vero se file esiste ed  scrivibile.
       -x file
              Vero se file esiste ed  eseguibile.
       -O file
              Vero se file esiste ed  posseduto dall'id effettivo dell'utente.
       -G file
              Vero   se   file  esiste  ed   posseduto  dal  gruppo  effettivo
              dell'utente.
       -L file
              Vero se file esiste ed  un collegamento simbolico.
       -S file
              Vero se file esiste ed  un socket.
       -N file
              Vero se file esiste ed  stato modificato dopo l'ultima volta  in
              cui  stato letto.
       file1 -nt file2
              Vero  se file1  pi recente (come data di modifica) di file2 o se
              file1 esiste e file2 no.
       file1 -ot file2
              Vero se file1  pi vecchio di file2, o se file2  esiste  e  file1
              no.
       file1 -ef file
              Vero  se  file1 e file2 si riferiscono allo stesso dispositivo e
              hanno lo stesso numero di inode.
       -o optname
              Vero se l'opzione di shell optname
               abilitata.  Si veda l'elenco delle opzioni sotto la descrizione
              dell'opzione -o al comando incorporato set pi avanti.
       -z stringa
              Vero se la lunghezza di stringa  0.
       stringa
       -n stringa
              Vero se la lunghezza di stringa
               diversa da zero.

       stringa1 == stringa2
              Vero se le stringhe sono uguali. = pu essere usato invece che ==
              per aderire rigorosamente allo standard POSIX.

       stringa1 != stringa2
              Vero se le stringhe non sono uguali.

       stringa1 < stringa2
              Vero se stringa1 precede come  ordine  stringa2  lessicografica-
              mente nella localizzazione corrente.

       stringa1 > stringa2
              Vero  se stringa1 segue come ordine stringa2 lessicograficamente
              nella localizzazione corrente.

       arg1 OP arg2
              OP
               uno tra -eq, -ne, -lt, -le, -gt, o -ge.  Questi operatori arit-
              metici  binari risultano veri se arg1 , rispettivamente, uguale,
              non uguale, minore, minore o  uguale,  maggiore,  o  maggiore  o
              uguale  ad arg2.  Arg1 e arg2 possono essere numeri interi posi-
              tivi o negativi.

ESPANSIONE DI COMANDO SEMPLICE

       Quando viene eseguito un comando semplice la shell effettua le seguenti
       espansioni, assegnamenti e ridirezioni, da sinistra a destra.

       1.     Le  parole che l'analizzatore ha individuato essere assegnamenti
              di variabile (quelle che precedono il nome  di  comando)  oppure
              ridirezioni  vengono  messe da parte per un'elaborazione succes-
              siva.

       2.     Le parole che non sono assegnamenti di variabile  o  ridirezioni
              sono espanse.  Se  presente qualche parola dopo l'espansione, la
              prima parola
               considerata essere il nome del comando e  le  rimanenti  parole
              come argomenti dello stesso.

       3.     Le  ridirezioni sono effettuate come descritte prima sotto RIDI-
              REZIONE.

       4.     Il testo dopo = in ogni assegnamento di variabile  sottoposto  a
              espansione  della  tilde,  sostituzione  di  comando, espansione
              aritmetica e rimozione dei caratteri di quotatura prima di venir
              assegnato alla variabile.

       Se  non  risulta  nessun nome di comando, gli assegnamenti di variabile
       influenzano l'ambiente di shell  corrente.   Altrimenti,  le  variabili
       sono  aggiunte  all'ambiente  del  comando  eseguito  senza influenzare
       l'ambiente di shell corrente.   Se  uno  qualsiasi  degli  assegnamenti
       tenta  di assegnare un valore a una variabile in sola lettura, si veri-
       fica un errore e il comando  terminato con uno stato diverso da zero.

       Se non risulta nessun nome di comando le ridirezioni sono effettuate ma
       senza  influenzare  l'ambiente  di  shell  corrente.  Se si verifica un
       errore di ridirezione il comando  terminato con uno  stato  diverso  da
       zero.

       Se   rimasto un nome di comando dopo l'espansione, l'esecuzione procede
       come descritto sotto.  Altrimenti,  il  comando  esce.   Se  una  delle
       espansioni conteneva una sostituzione di comando lo stato di uscita del
       comando  lo stato d'uscita dell'ultima  sostituzione  di  comando  ese-
       guita.   Se  non  ci sono state sostituzioni di comando il comando esce
       con uno stato d'uscita di zero.

ESECUZIONE DI UN COMANDO

       Dopo che un comando  stato suddiviso in parole, se esso risulta  essere
       un  comando  semplice  e  di  una  lista  opzionale  di argomenti, sono
       eseguite le seguenti azioni.

       Se il nome del comando non contiene barra [/], la shell tenta di local-
       izzarla.  Se esiste una funzione di shell con quel nome, viene invocata
       quella funzione, come descritto prima in FUNZIONI.  Se il nome non cor-
       risponde  a  una  funzione,  la  shell lo cerca nella lista dei comandi
       incorporati della shell.  Se ne viene trovato uno corrispondente, viene
       invocato quel comando incorporato.

       Se il nome non  n una funzione di shell n un comando incorporato, e non
       contiene alcuna barra [/], bash cerca tra gli elementi della  variabile
       PATH una directory che contenga un file eseguibile con quel nome.  Bash
       usa una tabella hash [indicizzata] per ricordare  i  percorsi  completi
       dei file eseguibili (si veda hash sotto COMANDI INCORPORATI DELLA SHELL
       pi avanti).  Una ricerca completa nelle directory in PATH
        effettuata solo se il comando non viene trovato  nella  tabella  hash.
       Se la ricerca non ha successo, la shell stampa un messaggio di errore e
       ritorna uno stato d'uscita di 127.

       Se la ricerca ha successo, o se il nome del comando contiene uno  o  pi
       barre [/], la shell esegue il programma indicato in un ambiente di ese-
       cuzione separato.  L'argomento 0  impostato al nome  specificato,  e  i
       rimanenti  argomenti del comando sono impostati agli argomenti specifi-
       cati, se presenti.

       Se quest'esecuzione non ha successo  perch  il  file  non   in  formato
       eseguibile  e il file non  una directory, si suppone che sia uno script
       di shell, cio un file che contiene comandi di shell, ed   generata  una
       subshell  per  eseguirlo.  Questa subshell reinizializza se stessa, cos
       che l'effetto come se fosse stata invocata una nuova shell per  gestire
       lo  script, con la differenza che la lista dei nomi completi di comando
       ricordati dalla shell genitrice (si veda hash pi avanti  sotto  COMANDI
       INCORPORATI DELLA SHELL) sono disponibili anche alla shell figlia.

       Se  il  programma  un file che inizia con #!, il resto della prima riga
       del file stesso specifica un interprete da invocare.  La  shell  esegue
       l'interprete specificato su sistemi operativi che non gestiscono questo
       formato eseguibile essi stessi.  Gli argomenti  per  l'interprete  con-
       sistono di un singolo argomento opzionale che segue il nome dell'inter-
       prete sulla prima riga del programma, seguito dal nome  del  programma,
       seguito dagli argomenti forniti al comando, se ve ne sono.

AMBIENTE DI ESECUZIONE DEL COMANDO

       La shell ha un ambiente di esecuzione, costituito da:


       +o      file  aperti ereditati dalla shell all'invocazione, come modifi-
              cati dalle ridirezioni fornite al comando incorporato exec

       +o      la corrente directory di lavoro come impostata da  cd,  pushd  o
              popd, o ereditata dalla shell all'invocazione

       +o      la  maschera  del  modo  di creazione dei file come impostata da
              umask o ereditata dalla shell genitrice

       +o      i segnali da intercettare impostati da trap

       +o      parametri di shell che sono stati impostati da  un  assegnamento
              di  variabile  o  con  set,  o  ereditati  dalla shell genitrice
              nell'ambiente

       +o      funzioni di shell  definite  durante  l'esecuzione  o  ereditate
              dalla shell genitrice nell'ambiente

       +o      opzioni abilitate all'invocazione (sia per default che con argo-
              menti da riga di comando) o da set

       +o      opzioni abilitate da shopt

       +o      alias di shell definiti da alias

       +o      vari ID di processo, inclusi quelli dei job  in  background,  il
              valore di $$ e il valore di $PPID

       Quando  un  comando  semplice, diverso da una funzione incorporata o da
       una funzione di shell, dev'essere eseguito, viene invocato in un  ambi-
       ente di esecuzione separato che comprende tutto quello che viene illus-
       trato qui di seguito.  Se non altrimenti notato, i valori  sono  eredi-
       tati dalla shell.


       +o      i file aperti della shell, pi qualsiasi modificazione e aggiunta
              specificata dalle ridirezioni al comando

       +o      la directory di lavoro corrente

       +o      la maschera del modo di creazione dei file

       +o      variabili di shell e funzioni  dichiarate  esportabili,  insieme
              alle variabili esportate per il comando, passate nell'ambiente

       +o      i  segnali da intercettare come da comando trap dalla shell sono
              riportati ai valori ereditati dalla shell genitrice, e i segnali
              ignorati dalla shell vengono ignorati

       Un  comando  invocato  in  quest'ambiente  separato  non pu influenzare
       l'ambiente di esecuzione della shell [genitrice].

       Sostituzione di comando, comandi raggruppati fra  parentesi  e  comandi
       asincroni  sono  invocati  in un ambiente di subshell che  un duplicato
       dell'ambiente di shell, con  l'eccezione  che  i  segnali  intercettati
       dalla  shell  sono riportati ai valori che la shell eredita dalla shell
       genitrice all'invocazione.  I comandi  incorporati  che  sono  invocati
       come  parte  di  una pipeline sono anch'essi eseguiti in un ambiente di
       subshell.   Modifiche  fatte  all'ambiente  di  subshell  non   possono
       influenzare l'ambiente di esecuzione della shell [genitrice].

       Se  un comando  invocato da un & e il job-control non  attivo, lo stan-
       dard input di default per il comando  il file vuoto /dev/null.   Altri-
       menti  il  comando  invocato  eredita i descrittori di file della shell
       chiamante come modificati dalle ridirezioni.

AMBIENTE

       Quando viene invocato un programma gli viene dato un array di  stringhe
       chiamato  [insieme  delle variabili di] ambiente.  Questa  una lista di
       coppie nome-valore, della forma nome=valore.

       La shell consente di manipolare l'ambiente in  molti  modi.   All'invo-
       cazione,  la shell esamina il suo ambiente e crea un parametro per ogni
       nome trovato, marcandolo automaticamente per essere esportato  ai  pro-
       cessi  figli.   I  comandi  eseguiti  ereditano  l'ambiente.  I comandi
       export e declare -x permettono di aggiungere o  togliere  dall'ambiente
       parametri  e  funzioni.   Se il valore di un parametro d'ambiente viene
       modificato, il nuovo valore diventa parte dell'ambiente, sostituendo il
       valore  precedente.  L'ambiente ereditato da qualsiasi comando eseguito
       costituito dall'ambiente iniziale della shell,  i  cui  valori  possono
       essere  modificati  nella  shell,  diminuiti di ogni coppia rimossa dal
       comando unset, e aumentati da ogni aggiunta attraverso i comandi export
       e declare -x .

       L'ambiente per qualsiasi comando semplice o funzione pu essere ampliato
       temporaneamente premettendo degli assegnamenti di parametro al  comando
       stesso, come descritto prima in PARAMETRI.  Queste istruzioni di asseg-
       namento influenzano solo l'ambiente utilizzato da quel comando.

       Se  impostata l'opzione -k (si  veda  il  comando  incorporato  set  pi
       avanti),  tutti  gli  assegnamenti  di  parametro sono resi disponibili
       nell'ambiente del comando, non solo quelli che precedono  il  nome  del
       comando.

       Quando  bash  invoca un comando esterno, la variabile _ viene impostata
       al nome completo del percorso del comando, e passato a quel comando nel
       suo ambiente.

STATO D\'USCITA

       Ai fini della shell, un comando che termina con uno stato d'uscita zero
       ha avuto successo.  Uno stato d'uscita pari  a  zero  indica  successo.
       Uno  stato  d'uscita  diverso da zero indica errore.  Quando un comando
       termina su un segnale fatale N, bash usa il valore di 128+N come  stato
       d'uscita.

       Se  un  comando  non  viene  trovato,  il  processo  figlio  creato per
       eseguirlo ritorna uno stato pari a 127.  Se un comando viene trovato ma
       non  eseguibile lo stato di ritorno  126.

       Se un comando non ha successo a causa di un errore durante l'espansione
       o la ridirezione, lo stato d'uscita  maggiore di zero.

       I comandi incorporati della shell restituiscono uno stato di  0  (vero)
       in  caso  di  successo,  e  diverso  da  zero (falso) in caso di errore
       durante l'esecuzione.  Tutti i comandi  incorporati  restituiscono  uno
       stato d'uscita di 2 per indicare l'uso scorretto.

       Bash  stessa  ritorna lo stato d'uscita dell'ultimo comando eseguito, a
       meno che non avvenga un errore di sintassi, nel qual caso essa esce con
       un  valore  diverso da zero.  Si veda anche il comando incorporato exit
       pi avanti.

SEGNALI

       Quando bash  interattiva, in assenza di ogni  segnale  da  intercettare
       col  comando  trap, ignora SIGTERM (cos che kill 0 non uccide una shell
       interattiva), e SIGINT viene intercettato e gestito (cos che il comando
       incorporato  wait   interrompibile).   In  tutti  i  casi,  bash ignora
       SIGQUIT.  Se si usa il job-control, bash  ignora  SIGTTIN,  SIGTTOU,  e
       SIGTSTP.

       I  comandi  non incorporati invocati da bash hanno i gestori di segnali
       impostati sui valori ereditati dalla shell dalla sua genitrice.  Quando
       non  si  usa  il  job-control,  i  comandi  asincroni ignorano SIGINT e
       SIGQUIT.  in aggiunta a questi gestori ereditati.  I  comandi  eseguiti
       come  risultato  di  una  sostituzione di comando ignorano i segnali di
       job-control generati da tastiera SIGTTIN, SIGTTOU, e SIGTSTP.

       La shell esce per default  al  ricevimento  di  un  SIGHUP.   Prima  di
       uscire,  una shell interattiva ri-invia un segnale SIGHUP a tutti i job
       [richiesti tramite job-control],  in  esecuzione  o  sospesi.   Ai  job
       sospesi viene inviato un segnale SIGCONT per essere sicuri che ricevano
       il segnale SIGHUP.  Per prevenire l'invio del segnale  da  parte  della
       shell  a un particolare job, quest'ultimo dovrebbe essere rimosso dalla
       tabella dei job col comando incorporato disown (si veda COMANDI  INCOR-
       PORATI  DELLA SHELL pi avanti) o contrassegnato per non ricevere SIGHUP
       usando disown -h.

       Se l'opzione di shell huponexit
        stata impostata con shopt, bash invia un segnale SIGHUP a tutti i  job
       quando una shell di login interattiva esce.

       Se  bash   in  attesa che un comando finisca e riceve un segnale per il
       quale  stato impostata un'intercettazione di segnale, il comando  rela-
       tivo  alla  gestione  del  segnale  viene  eseguito solo al termine del
       comando.  Quando bash  in attesa della fine  di  un  comando  asincrono
       attraverso  il comando incorporato wait, la ricezione di un segnale per
       il quale un'intercettazione di segnale  stata impostata  fa  s  che  il
       comando  incorporato wait termini immediatamente con uno stato d'uscita
       maggiore di 128, e immediatamente dopo viene innescata la gestione  del
       segnale intercettato.

JOB-CONTROL

       Il   termine   job-control   si   riferisce  alla  capacit  di  fermare
       (sospendere)  selettivamente  l'esecuzione  di  processi  e  continuare
       (riprendere)  la  loro  esecuzione  in seguito.  Tipicamente, un utente
       utilizza questa possibilit attraverso un'interfaccia interattiva costi-
       tuita congiuntamente dal driver del terminale di sistema e da bash.

       La shell associa un job a ogni pipeline.  Essa mantiene una tabella dei
       job correntemente in esecuzione, che  pu  essere  visualizzata  con  il
       comando  jobs.   Quando  bash  avvia un job in modo asincrono (in back-
       ground), stampa una riga tipo:

              [1] 25647

       che indica che questo job  il job numero  1  e  che  l'ID  di  processo
       dell'ultimo  processo  nella  pipeline  associata  a questo job  25647.
       Tutti i processi in una singola pipeline fanno parte dello stesso  job.
       Bash usa l'astrazione job come base per il job-control.

       Per  facilitare  l'implementazione  dell'interfaccia utente per il job-
       control, il sistema mantiene la nozione di ID del  gruppo  di  processi
       del  terminale  corrente.   I membri di questo gruppo di processo (pro-
       cessi il cui ID del gruppo di processo  uguale  all'ID  del  gruppo  di
       processo del terminale corrente) ricevono segnali generati da tastiera,
       come SIGINT.  Si dice che questi processi sono in  primo  piano  (fore-
       ground  -  oppure  sincroni).  I processi in background (sullo sfondo -
       oppure asincroni) sono quelli il cui ID del  gruppo  di  processo  dif-
       ferisce  da quello del terminale; tali processi sono immuni dai segnali
       generati da tastiera.  Solo ai processi in foreground  permesso di leg-
       gere  o  scrivere sul terminale.  Ai processi in background che tentano
       di leggere (scrivere) sul terminale  inviato un segnale SIGTTIN  (SIGT-
       TOU)  dal  driver  del terminale, che, se non intercettato, sospende il
       processo.

       Se il sistema operativo sul quale bash
        in esecuzione supporta il job-control bash
        in grado di utilizzarlo.  Battere il carattere di sospensione (tipica-
       mente  ^Z,  Control-Z)  mentre  un  processo  in esecuzione, provoca la
       sospensione di quel processo e restituisce il controllo a bash .   Bat-
       tere  il carattere di sospensione ritardata (tipicamente ^Y, Control-Y)
       provoca la sospensione del processo  quando  questo  tenta  di  leggere
       input dal terminale, e la restituzione del controllo a bash.  Si pu poi
       cambiare lo stato di questo job, usando il comando bg  per  continuarlo
       in background, il comando fg per riportarlo in foreground, o il comando
       kill per farlo terminare.   Un  ^Z  ha  effetto  immediatamente,  e  ha
       l'effetto  collaterale  di  causare la perdita dell'output in sospeso e
       del "type ahead" [caratteri immessi a terminale ma non  ancora  passati
       al programma].

       Vi  sono diversi modi per riferirsi a un job nella shell.  Il carattere
       % designa un nome di job.  Un job con numero n pu essere indicato  come
       %n.   Un job pu anche essere indicato usando un prefisso del nome usato
       per avviarlo, o usando una substringa che  appare  nella  sua  riga  di
       comando.   Per  esempio,  %ce  si riferisce a un job ce sospeso.  Se un
       prefisso corrisponde a pi di un job, bash restituisce un  messaggio  di
       errore.   L'uso  di  %?ce, d'altra parte, indica qualsiasi job che con-
       tiene la stringa ce nella  sua  riga  di  comando.   Se  la  substringa
       corrisponde a pi di un job, bash restituisce un messaggio di errore.  I
       simboli %% e %+ si riferiscono alla nozione della shell  del  job  cor-
       rente, ossia l'ultimo job sospeso mentre era in foreground o avviato in
       background.  Il  job  precedente  pu  essere  referenziato  usando  %-.
       Nell'output  che  riguarda  i  job  (per  esempio, l'output del comando
       jobs), il job corrente  sempre segnalato con un +, ed il job precedente
       con  un  -.  Un singolo % (senza alcuna specificazione associata)  pure
       un modo per designare il job corrente.

       La semplice menzione di un job pu essere usata per riportarlo in  fore-
       ground: %1
        un  sinonimo per ``fg %1'', che porta il job 1 dal background al fore-
       ground.  Nello stesso modo, ``%1 &'' riprende l'esecuzione del job 1 in
       background, ossia equivale a ``bg %1''.

       La  shell  viene notificata immediatamente ogni volta che un job cambia
       stato.  Normalmente, bash aspetta finch non  deve  stampare  un  prompt
       prima  di  informare  dei cambiamenti nello stato di un job, in modo da
       non interrompere alcun altro  output.   Se  l'opzione  -b  del  comando
       incorporato set
        impostata,  bash riporta tali cambiamenti immediatamente.  Delle even-
       tuali istruzioni di intercettazione del segnale SIGCHLD viene  eseguita
       per ogni processo figlio che esce.

       Se  si tenta di uscire da bash mentre vi sono dei job sospesi, la shell
       stampa un messaggio di avvertimento.  Si pu  quindi  usare  il  comando
       jobs  per controllare il loro stato.  Se si fa un secondo tentativo per
       uscire senza immettere alcun altro comando, non si riceve pi il messag-
       gio di avvertimento e i job sospesi vengono terminati.

STRINGHE DI PROMPT

       Quando  eseguita  interattivamente,  bash mostra il prompt primario PS1
       quando  pronta per leggere un  comando,  e  il  prompt  secondario  PS2
       quando   in attesa di altro input per completare un comando.  Bash per-
       mette di personalizzare queste stringhe di prompt  inserendo  un  certo
       numero  di caratteri speciali preceduti da backslash che sono decodifi-
       cati come segue:
              \a     un carattere ASCII di allarme (07) [campanello o bip]
              \d     la data nel formato "Giorno-della-settimana Mese  Giorno"
                     (ad es., "Tue May 26")
              \D{formato}
                     il  formato  viene  passato  a strftime(3) e il risultato
                     inserito nella stringa di prompt; un formato vuoto genera
                     una rappresentazione di data/ora specifica della localiz-
                     zazione.  Le parentesi graffe sono obbligatorie
              \e     un carattere ASCII di escape (033)
              \h     il nome dell'host fino al primo `.'
              \H     il nome dell'host
              \j     il numero di job attualmente gestiti dalla shell
              \l     il basename [nome all'interno della directory] del termi-
                     nale in cui  eseguita la shell
              \n     newline [su una nuova linea, ossia il prompt pu essere su
                     pi linee]
              \r     carriage return [a inizio linea,  ma  non  su  una  nuova
                     linea]
              \s     il  nome della shell, il basename [nome all'interno della
                     directory] di $0 (la parte che segue l'ultima barra [/])
              \t     l'ora corrente nel formato HH:MM:SS 24 ore
              \T     l'ora corrente nel formato HH:MM:SS 12 ore
              \@     l'ora corrente nel formato am/pm 12 ore
              \A     l'ora corrente nel formato HH:MM 24 ore
              \u     il nome-utente dell'utente corrente
              \v     la versione di bash (ad es., 2.00)
              \V     la release di bash, versione + livello di patch (ad  es.,
                     2.00.0)
              \w     la  directory  di lavoro corrente con HOME abbreviato con
                     una tilde
              \W     il basename della directory di lavoro corrente, con  HOME
                     abbreviato con una tilde
              \!     il numero nella cronologia del comando attuale
              \#     il numero di comando del comando attuale
              \$     se l'UID effettivo  0, un #, altrimenti un $
              \nnn   il carattere [ASCII] che corrisponde al numero ottale nnn
              \\     un backslash
              \[     marca l'inizio di una sequenza di caratteri  non  stampa-
                     bili,  che  pu  essere usata per includere nel prompt una
                     sequenza di controllo del terminale
              \]     marca la fine di una sequenza di caratteri non stampabili

       Il  numero  del  comando e il numero nella cronologia sono generalmente
       differenti: il numero della cronologia di un comando  la sua  posizione
       nella   lista   della   cronologia,   la  quale  pu  includere  comandi
       preesistenti nel file di cronologia (si  veda  CRONOLOGIA  pi  avanti),
       mentre  il  numero del comando  la posizione nella sequenza dei comandi
       eseguiti durante la corrente sessione di shell.  Dopo  che  la  stringa
       decodificata,  essa   espansa  attraverso l'espansione di parametro, la
       sostituzione di comando, l'espansione aritmetica  e  la  rimozione  dei
       caratteri   di   quotatura,   secondo  quanto  specificato  dal  valore
       dell'opzione di shell promptvars (si veda pi avanti la descrizione  del
       comando shopt sotto COMANDI INCORPORATI DELLA SHELL ).

READLINE

       Questa   la  libreria  che gestisce la lettura dell'input quando si usa
       una shell interattiva, a meno che non si specifichi l'opzione --noedit-
       ing  all'invocazione  della shell.  Per default, i comandi per l'editor
       della riga comandi sono simili a quelli di emacs.    anche  disponibile
       un'interfaccia  per  editor di riga in stile vi.  Per chiudere l'inter-
       faccia per l'editor di riga dopo l'esecuzione  della  shell  utilizzare
       l'opzione  -B  +o  emacs  o  +o vi del comando incorporato set (si veda
       COMANDI INCORPORATI DELLA SHELL pi avanti).

   Notazione readline
       In questa sezione, si usa la notazione in stile emacs  per  indicare  i
       tasti  da  battere.  I tasti di controllo sono indicati da C-tasto, per
       esempio, C-n significa Control-N.  In modo simile, i  meta  tasti  sono
       indicati  da  M-tasto, cio M-x significa Meta-X.  (Sulle tastiere senza
       un tasto meta , M-x significa ESC x, cio, si preme il  tasto  Escape  e
       poi  il  tasto x .  Questo rende ESC il meta prefisso.  La combinazione
       M-C-x significa ESC-Control-x, ossia si preme il tasto  Escape  poi  si
       tiene il tasto Control mentre si preme il tasto x ).

       Ai  comandi  readline possono essere specificati argomenti numerici che
       normalmente sono dei contatori di ripetizione.  A volte, tuttavia,   il
       segno  dell'argomento  a  essere  significativo.  Passando un argomento
       negativo a un comando che agisce in  avanti  (ad  es.,  kill-line),  il
       comando agisce nella direzione opposta.  I comandi il cui comportamento
       con gli argomenti  diverso da questo sono indicati pi avanti.

       Quando un comando  descritto come eliminazione di testo, il testo  can-
       cellato viene salvato per un possibile riutilizzo futuro (yanking).  Il
       testo eliminato viene salvato in un kill-ring.   Eliminazioni  consecu-
       tive  provocano  l'accumulazione  del  testo in una unit, che pu essere
       recuperata tutta in una volta.  Comandi che non eliminano  testo  sepa-
       rano parti di testo nel kill-ring.

   Inizializzazione di Readline
       Readline   personalizzata  inserendo  comandi  in un file di inizializ-
       zazione (il file inputrc ).  Il nome di questo file  preso  dal  valore
       della  variabile INPUTRC .  Se questa variabile non  definita il valore
       di default ~/.inputrc.  Quando un programma che usa la  libreria  read-
       line  viene avviato, viene letto il file di inizializzazione, e vengono
       impostate le associazioni di tasti e assegnate le variabili.   Ci  sono
       solo  alcuni  costrutti  base consentiti nel file d'inizializzazione di
       readline.  Le righe vuote sono ignorate.  Le righe che iniziano con  un
       #  sono  commenti.   Le  righe che iniziano con un $ indicano costrutti
       condizionali.   Le  altre  righe  indicano  associazioni  di  tasti   e
       impostazioni di variabili.

       Le associazioni di tasti di default possono essere cambiate con un file
       inputrc .  Altri programmi che usano questa libreria possono aggiungere
       i loro propri comandi e associazioni.

       Per esempio, porre

              M-Control-u: universal-argument
       o
              C-Meta-u: universal-argument
       nel  file  inputrc  farebbe  eseguire a M-C-u il comando della readline
       universal-argument .

       Sono riconosciuti i seguenti nomi simbolici di carattere: RUBOUT,  DEL,
       ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE e TAB.

       In  aggiunta al nome del comando, readline consente che a un tasto cor-
       risponda una stringa che  inserita  quando  quel  tasto   premuto  (una
       macro).

   Associazioni di tasti readline
       La  sintassi  per  il  controllo  delle associazioni dei tasti nel file
       inputrc
        semplice.  Tutto quel che  richiesto  il nome del comando o  il  testo
       di  una macro e una sequenza di tasti alla quale dovr essere associato.
       Il nome pu essere specificato in uno di due modi: come  nome  simbolico
       di  un tasto, eventualmente con i prefissi Meta- o Control-, o come una
       sequenza di tasti.

       Quando si usa la forma nome-tasto:nome-funzione o macro, nome-tasto
        il nome di un tasto in inglese.  Per esempio:

              Control-u: universal-argument
              Meta-Rubout: backward-kill-word
              Control-o: "> output"

       Negli esempi precedenti, C-u  viene  collegato  alla  funzione  univer-
       sal-argument, M-DEL viene collegato alla funzione backward-kill-word, e
       C-o viene collegato all'esecuzione della macro indicata sul lato destro
       (cio, inserire il testo ``> output'' nella riga).

       Nella    seconda   forma,   "sequenza-tasti":nome-funzione   o   macro,
       sequenza-tasti differisce da nome-tasto visto sopra, per il  fatto  che
       la stringa che denota un'intera sequenza di tasti pu essere specificata
       ponendo  la  sequenza  fra  virgolette.   Alcuni  tasti  di  protezione
       (escape)  nello stile GNU Emacs possono essere usati, come nei seguenti
       esempi, ma i nomi simbolici dei caratteri non si possono utilizzare.

              "\C-u": universal-argument
              "\C-x\C-r": re-read-init-file
              "\e[11~": "Function Key 1"

       In questo esempio, C-u viene ancora  collegato  alla  funzione  univer-
       sal-argument.  C-x C-r viene collegato alla funzione re-read-init-file,
       e ESC [ 1 1 ~ viene collegato all'inserimento del testo ``Function  Key
       1''.

       L'insieme  completo  delle sequenze di protezione (escape) in stile GNU
       Emacs
              \C-    prefisso control
              \M-    prefisso meta
              \e     un carattere di escape
              \\     backslash
              \"     il carattere "
              \'     il carattere '

       In aggiunta alle sequenze di protezione che iniziano col  tasto  escape
       in stile GNU Emacs,  disponibile un secondo insieme di sequenze di pro-
       tezione che iniziano con il backslash:
              \a     avviso (segnale acustico)
              \b     backspace
              \d     cancella [delete - tasto Del o Canc]
              \f     form feed [salto pagina]
              \n     newline [nuova linea]
              \r     carriage return [a inizio linea]
              \t     tabulazione orizzontale
              \v     tabulazione verticale
              \nnn   il carattere a otto bit il cui valore  rappresentato  dal
                     valore ottale nnn (da una a tre cifre ottali)
              \xHH   il  carattere a otto bit il cui valore  rappresentato dal
                     valore esadecimale HH (una o due cifre esadecimali)

       Quando si inserisce il testo  di  una  macro,  apostrofi  o  virgolette
       devono  essere  usati  per indicare una definizione di macro.  Un testo
       non quotato si suppone essere [che sia] un nome di funzione.  Nel corpo
       della  macro,  i  segni di protezione backslash descritti prima vengono
       espansi.  Il backslash quota qualsiasi altro carattere nel testo  della
       macro, inclusi " e '.

       Bash  permette  di  mostrare  o modificare le associazioni correnti dei
       tasti di readline con il comando incorporato bind .  Il modo di editing
       pu  essere  cambiato  durante l'uso interattivo usando l'opzione -o del
       comando incorporato set (si veda COMANDI  INCORPORATI  DELLA  SHELL  pi
       avanti).

   Variabili readline
       Readline ha delle variabili che possono essere usate per personalizzare
       ulteriormente il suo comportamento.  Una variabile pu essere  impostata
       nel file inputrc con un'istruzione della forma

              set nome-di-variabile valore

       Tranne  dove  diversamente  indicato,  le variabili di readline possono
       avere i valori On o Off (senza distinzione fra maiuscole e  minuscole).
       I  nomi  di  variabile non riconosciuti vengono ignorati.  Quando viene
       letto un valore di variabile, i valori vuoti o nulli, "on" (senza  dis-
       tinzione fra maiuscole e minuscole) o "1" sono equivalenti a On.  Tutti
       gli altri valori sono equivalenti a Off.  Le variabili e i loro  valori
       di default sono:

       bell-style (audible)
              Controlla  cosa  succede  se readline vuole usare il segnalatore
              acustico del terminale.   Se  impostato  a  none,  readline  non
              emette  alcun  segnale.  Se impostato a visible, readline usa un
              segnalatore visivo se  disponibile.   Se  impostato  a  audible,
              readline  tenta  di  attivare il segnalatore acustico del termi-
              nale.
       bind-tty-special-chars (On)
              Se impostato a On, readline tenta di associare  i  caratteri  di
              controllo trattati in modo speciale dal driver del terminale nel
              kernel agli equivalenti degli stessi come descritti da readline.
       comment-begin (``#'')
              La stringa che  inserita quando  eseguito il comando insert-com-
              ment .  Questo comando  associato a M-# in modalit comandi Emacs
              e a # in modalit comandi di vi.
       completion-ignore-case (Off)
              Se  impostato  a On, readline effettua l'individuazione dei nomi
              di file e il completamento seza distinguere le lettera maiuscole
              dalle lettere minuscole.
       completion-query-items (100)
              Questo determina a che punto interpellare l'utente per visualiz-
              zare i  possibili  completamenti  generati  dal  comando  possi-
              ble-completions.   Pu  essere  impostato a un numero intero mag-
              giore o uguale a zero.  Se il numero di possibili  completamenti
              maggiore  o  uguale  al  valore  di questa variabile, all'utente
              viene chiesto se desidera o meno vederli; altrimenti  essi  sono
              semplicemente elencati sul terminale.
       convert-meta (On)
              Se  impostato  a  On, readline converte i caratteri con l'ottavo
              bit uguale a 1 a una  sequenza  di  caratteri  ASCII  eliminando
              l'ottavo  bit  e  aggiungendo come prefisso un carattere di pro-
              tezione (in pratica, usando l'escape come prefisso meta).
       disable-completion (Off)
              Se impostato a On,  readline  inibisce  il  completamento  della
              parola.   I  caratteri  di  completamento saranno inseriti nella
              riga come se fossero stati mappati come self-insert.
       editing-mode (emacs)
              Controlla se readline parte con un insieme  di  associazioni  di
              tasti  simile  a emacs o vi.  editing-mode pu essere impostato a
              emacs o a vi.
       enable-keypad (Off)
              Quando impostato a On, readline tenta di abilitare il tastierino
              numerico  se viene utilizzato.  Alcuni sistemi richiedono questo
              per abilitare i tasti-freccia.
       expand-tilde (Off)
              Se impostato a on, l'espansione della tilde   effettuata  quando
              readline tenta il completamento della parola.
       history-preserve-point (Off)
              Se  impostato a on, il codice che implementa la cronologia tenta
              di piazzare il cursore nel punto in cui si trovava su ogni  riga
              della  cronologia  visualizzata con previous-history o next-his-
              tory.
       horizontal-scroll-mode (Off)
              Quando impostato a On, richiede a readline  di  usare  una  sola
              riga per la visualizzazione, effettuando lo scroll dell'input in
              orizzontale su una sola riga dello schermo quando  essa  risulti
              pi  lunga  della  larghezza  dello schermo, invece che andando a
              capo su una nuova riga.
       input-meta (Off)
              Se impostato a On, readline abilita l'input a otto bit (cio, non
              toglie  il  bit  pi alto dai caratteri che legge), indipendente-
              mente da quello che il terminale  dichiara  di  supportare.   Il
              nome meta-flag
               un sinonimo per questa variabile.
       isearch-terminators (``C-[C-J'')
              Una  stringa di caratteri che fa terminare una ricerca incremen-
              tale senza eseguire successivamente il carattere come  se  fosse
              un  comando.  Se a questa variabile non  stato dato un valore, i
              caratteri ESC and C-J fanno terminare una ricerca  incrementale.
       keymap (emacs)
              Imposta  la  mappa  corrente  dei tasti di readline.  Il set dei
              nomi validi per  le  mappe  dei  tasti   emacs,  emacs-standard,
              emacs-meta, emacs-ctlx, vi, vi-command e vi-insert.  vi  equiva-
              lente a vi-command; emacs   equivalente  a  emacs-standard.   Il
              valore  di  default  emacs;  il valore di editing-mode determina
              anche la mappa dei tasti di default.
       mark-directories (On)
              Se impostata a On, ai nomi delle directory completate   aggiunta
              una barra [/] alla fine.
       mark-modified-lines (Off)
              Se impostato a On, le righe della cronologia che sono state mod-
              ificate sono mostrate precedute da un asterisco (*).
       mark-symlinked-directories (Off)
              Se impostato a On, i nomi completati che sono collegamenti  sim-
              bolici  a  directory hanno una barra [/] alla fine (se richiesto
              tramite mark-directories).
       match-hidden-files (On)
              Questa variabile, se impostata a On, fa s  che  readline  mostri
              anche  i  file  i  cui  nomi iniziano con un `.' (file nascosti)
              quando effettua il completamento del nome di file, a meno che il
              `.'  iniziale non sia fornito dall'utente come parte del nome di
              file da completare.
       output-meta (Off)
              Se impostato a On, readline mostra i caratteri con l'ottavo  bit
              impostato  direttamente,  piuttosto che con una sequenza di pro-
              tezione avente come prefisso meta.
       page-completions (On)
              Se impostato a On, readline usa un paginatore interno  simile  a
              more  per  mostrare i possibili completamenti una schermata alla
              volta.
       print-completions-horizontally (Off)
              Se impostato a On, readline mostra i completamenti  ordinati  in
              ordine  alfabetico  orizzontalmente,  piuttosto che dall'alto in
              basso.
       show-all-if-ambiguous (Off)
              Questo cambia il comportamento di default delle funzioni di com-
              pletamento.   Se  impostato  a  on, le parole che hanno pi di un
              possibile completamento provocano la  visualizzazione  immediata
              delle coincidenze invece che l'attivazione del segnalatore acus-
              tico.
       show-all-if-unmodified (Off)
              Questo cambia il comportamento di default delle funzioni di com-
              pletamento   in  maniera  simile  a  show-all-if-ambiguous.   Se
              impostato a on, le parole che hanno pi di un possibile completa-
              mento  senza  alcun  possibile  completamento parziale (ovvero i
              possibili completamenti non hanno alcun prefisso in comune) sono
              elencate  immediatamente  invece che provocare l'attivazione del
              segnalatore acustico.
       visible-stats (Off)
              Se impostato a On, un carattere che denota un tipo di file  come
              riportato  da  stat(2)  accodato al nome di file durante l'elen-
              cazione dei possibili completamenti.

   Costrutto condizionale di readline
       Readline implementa un servizio simile, nello spirito, a  quello  della
       compilazione condizionale nel preprocessore C, e che permette di effet-
       tuare associazioni di tasti e impostazioni  di  variabili  in  base  al
       risultato di test.  Vi sono tre direttive di controllo usate.

       $if    Il  costrutto  $if  permette  che le associazioni siano fatte in
              base al modo di editing, al terminale in uso o  all'applicazione
              che fa uso di readline.  Il testo da verificare arriva fino alla
              fine della riga; nessun carattere che lo delimiti  richiesto.

              mode   La forma mode= della direttiva $if  usata per  verificare
                     se  readline  in modo emacs o vi.  Questo pu essere usato
                     in congiunzione con il comando set keymap,  per  esempio,
                     per  impostare  le  associazioni delle mappe dei tasti di
                     emacs-standard e emacs-ctlx solo se readline  avviata  in
                     modo emacs.

              term   La forma term= pu essere usata per includere associazioni
                     di tasti specifiche per un terminale,  magari  per  asso-
                     ciare  le sequenze di tasti emesse dai tasti funzione dei
                     terminali.  La parola a destra dell' = viene  confrontata
                     con  il  nome  completo del terminale e la parte del nome
                     del terminale che precede il primo -.  Questo permette  a
                     sun  di essere trovare corrispondenza sia con sun che con
                     sun-cmd, ad esempio.

              application
                     Il   costrutto   application    usato    per    includere
                     impostazioni  specifiche  per un'applicazione.  Ogni pro-
                     gramma che usa  la  libreria  readline  imposta  il  nome
                     applicazione,  e  un file di inizializzazione pu poi fare
                     un test per un  particolare  valore.   Questo  pu  essere
                     usato  per  associare  sequenze di tasti a funzioni utili
                     per uno specifico programma.   Per  esempio,  il  comando
                     seguente  aggiunge  una  sequenza  di  tasti che quota la
                     parola corrente o la parola precedente in Bash:

                     $if Bash
                     # Quota la parola corrente o precedente
                     "\C-xq": "\eb\"\ef\""
                     $endif

       $endif Questo comando, come si  visto nell'esempio precedente, fa  ter-
              minare un comando $if.

       $else  I  comandi  in questa parte della direttiva $if sono eseguiti se
              il test non risulta verificato.

       $include
              Questa direttiva prende un unico nome di file come  argomento  e
              legge  comandi  e  associazioni  da  quel file.  Per esempio, la
              seguente direttiva legge /etc/inputrc:

              $include  /etc/inputrc

   Ricerca
       Readline  dotato di comandi per cercare nella  cronologia  dei  comandi
       (si  veda CRONOLOGIA pi avanti) righe contenenti una stringa specifica.
       Ci sono due modalit di ricerca: incrementale e non-incrementale.

       La ricerca incrementale inizia  prima  che  l'utente  abbia  finito  di
       immettere  la  stringa di ricerca.  Mentre ogni carattere della stringa
       di ricerca viene battuto, readline mostra la prima linea dalla cronolo-
       gia che corrisponde alla stringa battuta finora.  Una ricerca incremen-
       tale richiede solamente il numero minimo  di  caratteri  necessari  per
       trovare  l'elemento  della cronologia desiderato.  I caratteri presenti
       nel valore della variabile isearch-terminators sono  usati  per  delim-
       itare  una  ricerca  incrementale.   Se  a  quella variabile non  stata
       assegnato un valore i caratteri di Escape e Control-J  fanno  arrestare
       una  ricerca  incrementale.  Control-G interrompe una ricerca incremen-
       tale e ripristina la riga originale.   Quando   terminata  la  ricerca,
       l'elemento della cronologia contenente la stringa di ricerca diventa la
       riga corrente.

       Per trovare altri elementi nell'elenco della cronologia,  battere  Con-
       trol-S  o  Control-R  secondo  il caso.  Viene eseguita cos una ricerca
       all'indietro o in avanti nella cronologia del successivo  elemento  che
       corrisponde  alla  stringa  di  ricerca che  stata immessa.  Ogni altra
       sequenza di tasti associata a un comando  readline  pone  termine  alla
       ricerca  ed  esegue  il  comando presente nella linea.  Per esempio, un
       newline  provoca  l'interruzione  della  ricerca  e  accetta  la  riga,
       eseguendo cos il comando proveniente dall'elenco della cronologia.

       Readline ricorda l'ultima stringa di ricerca incrementale.  Se due Con-
       trol-R vengono  battuti  senza  che  siano  intervenuti  caratteri  che
       definiscono  una  nuova stringa di ricerca, viene utilizzata la stringa
       di ricerca memorizzata al momento.

       Le ricerche non incrementali leggono l'intera stringa di ricerca  prima
       di  avviare  la  ricerca  per  individuare  righe nella cronologia.  La
       stringa di ricerca pu essere battuta dall'utente  o  essere  parte  del
       contenuto della riga corrente.

   Nomi di comando readline
       La seguente  una lista di nomi dei comandi e delle sequenze di tasti di
       default a cui essi sono collegati.  Nomi di comando senza una  sequenza
       di   tasti  collegata  a  essi  sono  scollegati  per  default.   Nelle
       descrizioni seguenti, punto si riferisce alla  posizione  corrente  del
       cursore  e  marca  alla  posizione  del  cursore  salvata  col  comando
       set-mark.  Il testo fra il punto e la marca  indicato come regione.

   Comandi di movimento
       beginning-of-line (C-a)
              Si sposta all'inizio della riga corrente.
       end-of-line (C-e)
              Si sposta alla fine della riga.
       forward-char (C-f)
              Si sposta avanti di un carattere.
       backward-char (C-b)
              Si sposta indietro di un carattere.
       forward-word (M-f)
              Si sposta in avanti fino alla fine della parola successiva.   Le
              parole  sono  composte  di  caratteri  alfanumerici  (lettere  e
              cifre).
       backward-word (M-b)
              Si sposta indietro all'inizio della  parola  corrente  o  prece-
              dente.   Le parole sono composte di caratteri alfanumerici (let-
              tere e cifre).
       clear-screen (C-l)
              Pulisce lo schermo lasciando  la  riga  corrente  in  cima  allo
              schermo.   Con  un  argomento,  rinfresca la riga corrente senza
              ripulire lo schermo.
       redraw-current-line
              Rinfresca la riga corrente.

   Comandi per manipolare la cronologia
       accept-line (Newline, Return)
              Accetta la riga senza curarsi di dove sia il cursore.  Se questa
              riga non
               vuota,   aggiunta alla lista della cronologia in accordo con lo
              stato della variabile HISTCONTROL.  Se  la  riga   una  riga  di
              cronologia  modificata,  allora ripristina la riga di cronologia
              al suo stato originale.
       previous-history (C-p)
              Prende il precedente comando dalla lista della cronologia,  spo-
              standosi indietro nella lista.
       next-history (C-n)
              Prende  il successivo comando dalla lista della cronologia, spo-
              standosi avanti nella lista.
       beginning-of-history (M-<)
              Si sposta alla prima riga nella cronologia.
       end-of-history (M->)
              Si sposta alla fine della cronologia dell'input, cio, alla  riga
              che si sta inserendo.
       reverse-search-history (C-r)
              Cerca  all'indietro  partendo dalla riga corrente spostandosi in
              `su' attraverso la  cronologia  come  necessario.   Questa   una
              ricerca incrementale.
       forward-search-history (C-s)
              Cerca  in  avanti  partendo dalla riga corrente e spostandosi in
              `gi' attraverso la  cronologia  come  necessario.   Questa   una
              ricerca incrementale.
       non-incremental-reverse-search-history (M-p)
              Cerca all'indietro attraverso la cronologia, partendo dalla riga
              corrente, una stringa fornita dall'utente,  usando  una  ricerca
              non incrementale.
       non-incremental-forward-search-history (M-n)
              Cerca  in  avanti  attraverso  la cronologia una stringa fornita
              dall'utente, usando una ricerca non incrementale.
       history-search-forward
              Cerca in avanti attraverso la cronologia una stringa  di  carat-
              teri  tra  l'inizio  della riga corrente e il punto del cursore.
              Questa  una ricerca non incrementale.
       history-search-backward
              Cerca all'indietro  attraverso  la  cronologia  una  stringa  di
              caratteri  tra  l'inizio della riga corrente e il punto del cur-
              sore.  Questa  una ricerca non incrementale.
       yank-nth-arg (M-C-y)
              Inserisce il primo argomento del  comando  precedente  (general-
              mente  la  seconda  parola sulla riga precedente) alla posizione
              del cursore.  Con un argomento n, inserisce la n-sima parola del
              comando  precedente  (le  parole nel comando precedente iniziano
              con la parola 0).  Un argomento  negativo  inserisce  la  n-sima
              parola dalla fine del comando precedente.  Una volta che l'argo-
              mento n  calcolato, l'argomento  estratto come  se  l'espansione
              della cronologia "!n" sia stata specificata.
       yank-last-arg (M-., M-_)
              Inserisce  l'ultimo  argomento  del comando precedente (l'ultima
              parola della precedente riga di cronologia).  Con un  argomento,
              si comporta esattamente come yank-nth-arg.  Chiamate consecutive
              a yank-last-arg percorrono l'elenco della  cronologia  all'indi-
              etro,  inserendo  ogni volta l'ultimo argomento di ogni riga.  I
              servizi dell'espansione della cronologia sono usati per estrarre
              l'ultimo argomento, come se fosse stata specificata l'espansione
              della cronologia "!$".
       shell-expand-line (M-C-e)
              Espande la riga nello stesso modo in cui lo fa la shell.  Questo
              effettua  l'espansione  degli  alias e della cronologia cos come
              tutte le espansioni di parola della shell.  Si  veda  ESPANSIONE
              DELLA  CRONOLOGIA  pi avanti per una descrizione dell'espansione
              della cronologia.
       history-expand-line (M-^)
              Effettua l'espansione della cronologia sulla riga corrente.   Si
              veda  ESPANSIONE  DELLA CRONOLOGIA pi avanti per una descrizione
              dell'espansione della cronologia.
       magic-space
              Effettua l'espansione della cronologia  sulla  riga  corrente  e
              inserisce  uno  spazio.   Si veda ESPANSIONE DELLA CRONOLOGIA pi
              avanti per una descrizione dell'espansione della cronologia.
       alias-expand-line
              Effettua l'espansione degli alias sulla riga corrente.  Si  veda
              ALIAS sopra per una descrizione dell'espansione degli alias.
       history-and-alias-expand-line
              Effettua  l'espansione della cronologia e degli alias sulla riga
              corrente.
       insert-last-argument (M-., M-_)
              Un sinonimo di yank-last-arg.
       operate-and-get-next (C-o)
              Accetta  la  riga  corrente  per  l'esecuzione  e  prende  dalla
              cronologia  la riga successiva a quella corrente, per l'editing.
              Qualsiasi argomento viene ignorato.
       edit-and-execute-command (C-xC-e)
              Invoca un editor sulla riga di comando  corrente  ed  esegue  il
              risultato  come  comandi  di  shell.   Bash  tenta  di  invocare
              $FCEDIT, $EDITOR e emacs come editor, in quest'ordine.

   Comandi per cambiare il testo
       delete-char (C-d)
              Cancella il carattere  nel  punto  del  cursore.   Se  il  punto
              all'inizio  della  riga,  non  vi  alcun carattere nella riga, e
              l'ultimo carattere battuto non  era   associato  a  delete-char,
              allora ritorna EOF.
       backward-delete-char (Rubout)
              Cancella  il  carattere  dopo il cursore.  Quando  dato un argo-
              mento numerico, salva il testo cancellato sul kill-ring.
       forward-backward-delete-char
              Cancella il carattere sotto il cursore, a meno  che  il  cursore
              non  sia alla fine della riga, nel qual caso il carattere dietro
              al cursore viene cancellato.
       quoted-insert (C-q, C-v)
              Aggiunge il successivo carattere battuto sulla riga in modo let-
              terale.   Questo   il  modo per inserire caratteri come C-q, per
              esempio.
       tab-insert (C-v TAB)
              Inserisce un carattere tab.
       self-insert (a, b, A, 1, !, ...)
              Inserisce il carattere battuto.
       transpose-chars (C-t)
              Trascina il carattere prima del  punto  del  cursore  in  avanti
              sopra  il  carattere  nel  punto,  spostando  anche  il punto in
              avanti.  Se il punto  alla  fine  della  riga,  traspone  i  due
              caratteri   prima  del  punto.   Argomenti  negativi  non  hanno
              effetto.
       transpose-words (M-t)
              Trascina la parola prima del punto del cursore  dopo  la  parola
              oltre  il punto, spostando inoltre il punto sopra quella parola.
              Se il punto  alla fine della riga, allora traspone le ultime due
              parole sulla riga.
       upcase-word (M-u)
              Rende  maiuscola  la parola corrente (o seguente).  Con un argo-
              mento negativo, opera sulla parola precedente, ma non sposta  il
              punto del cursore.
       downcase-word (M-l)
              Rende  minuscola  la parola corrente (o seguente).  Con un argo-
              mento negativo, opera sulla parola precedente, ma non sposta  il
              punto del cursore.
       capitalize-word (M-c)
              Rende  maiuscola  la  prima  lettera  della  parola  corrente (o
              seguente).  Con un argomento negativo, opera sulla parola prece-
              dente, ma non sposta il punto del cursore.
       overwrite-mode
              Alterna  fra  modalit  inserimento  e modalit di sovrascrittura.
              Con un argomento numerico esplicito positivo passa alla  modalit
              sovrascrittura.   Con  un argomento numerico esplicito non posi-
              tivo passa alla modalit inserimento.   Questo  comando  riguarda
              solo  la  modalit  emacs;  la  modalit  vi  sovrascrive  in modo
              diverso.  Ogni chiamata a readline() viene  avviata  in  modalit
              inserimento.   In modalit sovrascrittura i caratteri associati a
              self-insert sostituiscono il testo nel punto del  cursore  piut-
              tosto  che  sospingere il testo verso destra.  I caratteri asso-
              ciati a backward-delete-char sostituiscono  il  carattere  prima
              del  punto  con  uno  spazio.  Questo comando  non associato per
              default.

   Eliminazione e recupero
       kill-line (C-k)
              Elimina il testo dal punto del  cursore  fino  alla  fine  della
              riga.
       backward-kill-line (C-x C-Rubout)
              Elimina all'indietro fino all'inizio della riga.
       unix-line-discard (C-u)
              Elimina all'indietro dal punto del cursore fino all'inizio della
              riga.  Il testo eliminato  viene salvato nel kill-ring
       kill-whole-line
              Elimina tutti i caratteri sulla riga corrente, non importa  dove
              sia il punto del cursore.
       kill-word (M-d)
              Elimina  dal  punto del cursore fino alla fine della parola cor-
              rente, o se tra parole, fino alla fine della successiva  parola.
              I  delimitatori di parola sono gli stessi usati da forward-word.
       backward-kill-word (M-Rubout)
              Elimina la parola dietro il punto del cursore.   I  delimitatori
              di parole sono gli stessi usati da forward-word.
       unix-word-rubout (C-w)
              Elimina  la parola dietro il punto del cursore, usando gli spazi
              bianchi come delimitatori di parola.  Il testo  eliminato   sal-
              vato nel kill-ring.
       unix-filename-rubout
              Elimina la parola prima del punto del cursore, usando uno spazio
              bianco e il carattere barra [/] come delimitatori di parola.  Il
              testo eliminato salvato nel kill-ring.
       delete-horizontal-space
              Cancella tutti gli spazi e i tab attorno al punto del cursore.
       kill-region
              Elimina il testo nella regione corrente.
       copy-region-as-kill
              Copia il testo nella regione sul kill buffer.
       copy-backward-word
              Copia  la parola prima del punto del cursore sul kill buffer.  I
              delimitatori di parola sono gli stessi di backward-word.
       copy-forward-word
              Copia la parola dopo il punto del cursore sul  kill  buffer.   I
              delimitatori di parola sono gli stessi di forward-word.
       yank (C-y)
              Copia il contenuto in cima al kill-ring e lo pone nel buffer nel
              punto del cursore.
       yank-pop (M-y)
              Ruota il kill-ring, e copia la nuova cima.  Funziona  solo  dopo
              yank o yank-pop.

   Argomenti numerici
       digit-argument (M-0, M-1, ..., M--)
              Aggiunge  questa  cifra  all'argomento che sta gi accumulando, o
              inizia un nuovo argomento.  M-- avvia un argomento negativo.
       universal-argument
              Questo  un altro modo  per  specificare  un  argomento.   Se  il
              comando   seguito  da una o pi cifre, opzionalmente con un segno
              meno iniziale, queste  cifre  definiscono  l'argomento.   Se  il
              comando  seguito da cifre, eseguendo universal-argument di nuovo
              termina l'argomento numerico, ma a parte questo viene  ignorato.
              Come caso speciale, se questo comando  seguito immediatamente da
              un carattere che che non  n una cifra n un segno meno, il conta-
              tore degli argomenti per il comando successivo  moltiplicato per
              quattro.  Il contatore  inizialmente uno, cos  eseguendo  questa
              funzione la prima volta il contatore diventa quattro, la seconda
              volta il contatore diventa sedici, e cos via.

   Completamento
       complete (TAB)
              Tenta di effettuare il completamento del testo  che  precede  il
              punto  del  cursore.   Bash  tenta il completamento trattando il
              testo, rispettivamente, come una variabile (se il  testo  inizia
              con  $),  nome  di  utente (se il testo comincia con ~), nome di
              host (se il testo comincia con @) o  comando  (inclusi  alias  e
              funzioni).   Se  nessuna  di questi produce una risultato, viene
              tentato il completamento del nome di file.
       possible-completions (M-?)
              Elenca i possibili completamenti del testo che precede il  punto
              del cursore.
       insert-completions (M-*)
              Inserisce  tutti  i completamenti del testo che precede il punto
              del cursore che sarebbero  stati  generati  da  possible-comple-
              tions.
       menu-complete
              Simile  a  complete,  ma sostituisce la parola da completare con
              una corrispondenza singola dalla lista dei  possibili  completa-
              menti.   Un'esecuzione ripetuta di menu-complete scorre la lista
              dei possibili completamenti, inserendo una  corrispondenza  alla
              volta.   Alla fine della lista dei completamenti viene emesso un
              segnale acustico (dipendente dall'impostazione di bell-style)  e
              il  testo originale  ripristinato.  Con un argomento n si sposta
              di n posizioni in avanti nella lista dei completamenti  individ-
              uati;  pu  essere  usato  un  argomento  negativo  per spostarsi
              all'indietro nella la lista.  Questo comando  da associare  nor-
              malmente al tasto TAB, per non  associato per default.
       delete-char-or-list
              Cancella   il  carattere  sotto  il  cursore  se  non  si  trova
              all'inizio o alla fine della riga (simile  a  delete-char).   Se
              alla  fine  della  riga,  si  comporta in modo identico a possi-
              ble-completions.  Questo comando non  associato per default.
       complete-filename (M-/)
              Tenta il completamento del nome del file sul testo  che  precede
              il punto del cursore.
       possible-filename-completions (C-x /)
              Elenca  i possibili completamenti del testo che precede il punto
              del cursore, trattandolo come un nome di file.
       complete-username (M-~)
              Tenta il completamento del testo che precede il punto  del  cur-
              sore, trattandolo come un nome di utente.
       possible-username-completions (C-x ~)
              Elenca  i possibili completamenti del testo che precede il punto
              del cursore, trattandolo come un nome di utente.
       complete-variable (M-$)
              Tenta il completamento del testo che precede il punto  del  cur-
              sore, trattandolo come una variabile di shell.
       possible-variable-completions (C-x $)
              Elenca  i possibili completamenti del testo che precede il punto
              del cursore, trattandolo come una variabile di shell.
       complete-hostname (M-@)
              Tenta il completamento del testo che precede il punto  del  cur-
              sore, trattandolo come un nome di host.
       possible-hostname-completions (C-x @)
              Elenca  i possibili completamenti del testo che precede il punto
              del cursore, trattandolo come un nome di host.
       complete-command (M-!)
              Tenta il completamento del testo che precede punto del  cursore,
              trattandolo  come  nome di comando.  Il completamento di comando
              tenta di far  combaciare  il  testo  confrontandolo  con  alias,
              parole  riservate,  funzioni  di  shell,  comandi incorporati di
              shell e, da ultimo, nomi di file eseguibili, in quest'ordine.
       possible-command-completions (C-x !)
              Elenca i possibili completamenti del testo che precede il  punto
              del cursore, trattandolo come un nome di comando.
       dynamic-complete-history (M-TAB)
              Tenta  il  completamento del testo che precede il punto del cur-
              sore, confrontando il testo  con  le  righe  della  lista  della
              cronologia  cercando  le  possibili  corrispondenze di completa-
              mento.
       complete-into-braces (M-{)
              Effettua il completamento del nome di file e insericse la  lista
              dei possibili completamenti racchiusi tra parentesi graffe, ren-
              dendo la lista disponibile per  la  shell  (si  veda  Espansione
              delle parentesi graffe sopra).

   Macro di tastiera
       start-kbd-macro (C-x ()
              Inizia  a  salvare  i  caratteri battuti nella corrente macro di
              tastiera.
       end-kbd-macro (C-x ))
              Smette di salvare i caratteri battuti nella  corrente  macro  di
              tastiera e memorizza la definizione.
       call-last-kbd-macro (C-x e)
              Riesegue  l'ultima  macro  di tastiera definita, facendo s che i
              caratteri nella macro appaiano come  se  fossero  stati  battuti
              sulla tastiera.

   Varie
       re-read-init-file (C-x C-r)
              Legge  il  contenuto  del file inputrc, e incorpora ogni associ-
              azione o assegnamento di variabile che trova.
       abort (C-g)
              Annulla il corrente comando di  editing  ed  emette  il  segnale
              acustico   del   terminale   (dipendente   dall'impostazione  di
              bell-style).
       do-uppercase-version (M-a, M-b, M-x, ...)
              Se il carattere x battuto  assieme  al  tasto  Meta   minuscolo,
              esegue  il  comando collegato al corrispondente carattere maius-
              colo.
       prefix-meta (ESC)
              Definisce come tasto Meta il successivo carattere battuto.   ESC
              f
               equivalente a Meta-f.
       undo (C-_, C-x C-u)
              Undo incrementale, memorizzato separatamente per ogni riga.
       revert-line (M-r)
              Annulla  tutti i cambiamenti fatti su questa riga.  Questo  come
              eseguire il comando  undo  un  numero  di  volte  sufficiente  a
              riportare la riga al suo stato iniziale.
       tilde-expand (M-&)
              Effettua l'espansione della tilde sulla parola corrente.
       set-mark (C-@, M-<space>)
              Imposta  la  marca  in corrispondenza del punto del cursore.  Se
              viene fornito un argomento numerico la marca viene  impostato  a
              quella posizione.
       exchange-point-and-mark (C-x C-x)
              Scambia  il  punto  del cursore con la marca.  La posizione cor-
              rente del cursore
               impostata alla posizione salvata, e la  vecchia  posizione  del
              cursore  salvata come marca.
       character-search (C-])
              Viene  letto  un  carattere  e  il  punto  del cursore  spostato
              all'occorrenza successiva di quel carattere.  Un contatore nega-
              tivo cerca occorrenze precedenti.
       character-search-backward (M-C-])
              Viene  letto  un  carattere  e  il  punto  del cursore  spostato
              all'occorrenza precedente di quel carattere.  Un contatore nega-
              tivo cerca occorrenze successive.
       insert-comment (M-#)
              Senza  un  argomento numerico il valore della variabile readline
              comment-begin
               inserito all'inizio della riga corrente.  Se  fornito un  argo-
              mento  numerico questo comando agisce come un interruttore: se i
              caratteri all'inizio della riga non corrispondono al  valore  di
              comment-begin,  il valore viene inserito, altrimenti i caratteri
              in comment-begin vengono cancellati dall'inizio della riga.   In
              entrambi i casi la riga viene accettata come se fosse stato bat-
              tuto un codice di fine riga (newline).  Il valore di default  di
              comment-begin fa s che questo comando trasformi la riga corrente
              in un commento di shell.  Se un argomento  numerico  provoca  la
              rimozione del carattere di commento, la riga verr eseguita dalla
              shell.
       glob-complete-word (M-g)
              La parola prima del punto del cursore  trattata come un  modello
              per  l'espansione  del  percorso, con un asterisco aggiunto alla
              fine implicitamente.  Questo modello viene  usato  per  generare
              una  lista  di nomi di file corrispondenti a possibili completa-
              menti.
       glob-expand-word (C-x *)
              La parola prima del punto del cursore  trattata come un  modello
              per l'espansione del percorso, e la lista dei nomi di file indi-
              viduati viene inserita, sostituendo la parola.  Se viene fornito
              un  argomento  numerico  viene  aggiunto  alla fine un asterisco
              prima dell'espansione del percorso.
       glob-list-expansions (C-x g)
              Viene mostrata la lista delle  espansioni  che  sarebbero  state
              generate  da  glob-expand-word e la riga  ridisegnata.  Se viene
              fornito un argomento  numerico,  un  asterisco   aggiunto  prima
              dell'espansione del percorso.
       dump-functions
              Stampa  tutte  le  funzioni  e le loro associazioni di tasti sul
              file di output di readline.  Se  fornito un argomento  numerico,
              l'output  formattato in modo tale da poter essere inserito in un
              file inputrc.
       dump-variables
              Stampa tutte le variabili readline impostabili e i  loro  valori
              sul  file  di output di readline.  Se viene fornito un argomento
              numerico l'output  formattato  in  modo  tale  da  poter  essere
              inserito in un file inputrc.
       dump-macros
              Stampa  tutte  le sequenze di tasti readline associate a macro e
              le stringhe da loro prodotte.  Se  viene  fornito  un  argomento
              numerico  l'uscita   formattata  in  modo  tale  da poter essere
              inserito in un file inputrc.
       display-shell-version (C-x C-v)
              Mostra l'informazione sulla versione della corrente  istanza  di
              bash.

   Completamento programmabile
       Quando  viene tentato il completamento della parola per un argomento di
       un comando per il quale una specifica di completamento  (una  compspec)
       stata definita col comando incorporato complete (si veda COMANDI INCOR-
       PORATI DELLA SHELL pi avanti), vengono invocati i servizi di  completa-
       mento programmabile.

       Per  prima  cosa viene identificato il nome del comando.  Se un comspec
       stato definito per quel comando, il comspec usato per generare la lista
       dei  possibili completamenti per la parola.  Se il nome del comando  un
       percorso completo di file, viene ricercato per primo un comspec per  il
       percorso completo.  Se non viene trovato nessun comspec per il percorso
       completo viene fatto  un  tentativo  per  trovare  un  comspec  per  la
       porzione che segue la barra [/] finale.

       Un  volta trovato un comspec, questo  usato per generare la lista delle
       parole corrispondenti.  Se non viene trovato un comspec,  viene  effet-
       tuato il completamento di bash di default come descritto in precedenza,
       sotto Completamento.

       Per prima cosa, sono usate le azioni  specificate  dal  comspec.   Sono
       restituite  solo  le  corrispondenze  che  iniziano  con  la parola che
       dev'essere completata.  Quando viene usata l'opzione -f  o  -d  per  il
       completamento del nome di file o della directory, la variabile di shell
       FIGNORE
        usata per filtrare le corrispondenze.

       In seguito, viene generato qualsiasi completamento  specificato  da  un
       modello  di espansione del nome di file all'opzione -G.  Le parole gen-
       erate dal modello non devono necessariamente corrispondere alla  parola
       che dev'essere completata.  La variabile di shell GLOBIGNORE non  usata
       per filtrare le corrispondenze, ma viene usata la variabile FIGNORE .

       In seguito, viene considerata la  stringa  specificata  come  argomento
       all'opzione  -W.   La stringa  prima suddivisa usando i caratteri nella
       variabile speciale IFS come delimitatori.
        rispettata la quotatura della shell.  Ogni parola  viene  poi  espansa
       usando  espansione  delle  parentesi  graffe,  espansione  della tilde,
       espansione di parametro e di  variabile,  sostituzione  di  comando  ed
       espansione  aritmetica, come descritto in precedenza, sotto ESPANSIONE.
       I risultati sono suddivisi usando le regole sopra descritte sotto  Sud-
       divisione  in parole.  I risultati dell'espansione sono confrontati con
       la parte iniziale della parola che dev'essere completata, e quelli  che
       corrispondono diventano i possibili completamenti.

       Dopo  che  queste  corrispondenze  sono  state generate, viene invocata
       qualsiasi funzione di shell o comando specificato con le opzioni  -F  e
       -C.   Quando  il  comando  o  funzione  viene  invocata, alle variabili
       COMP_LINE e COMP_POINT sono assegnati valori come descritto  in  prece-
       denza,  sotto Variabili di shell.  Quando una funzione di shell sta per
       essere  invocata,  le  variabili  COMP_WORDS  e  COMP_CWORD  sono  pure
       impostate.   Quando  viene  invocata  una  funzione o comando, il primo
       argomento  il nome del comando i cui argomenti sono  stati  completati,
       il  secondo argomento  la parola da completare e il terzo argomento  la
       parola che precede  la parola da completare sulla riga di comando  cor-
       rente.  Non viene effettuata nessuna azione di filtro sui completamenti
       generati confrontandoli con la parola  da  completare;  la  funzione  o
       comando ha libert completa nel generare le corrispondenze.

       Qualsiasi  funzione  specificata  con  -F viene invocata per prima.  La
       funzione pu usare uno  qualsiasi  dei  servizi  di  shell,  incluso  il
       comando  incorporato  compgen descritto pi avanti, per generare le cor-
       rispondenze.  la funzione deve mettere i possibili completamenti  della
       variabile di array COMPREPLY .

       In  seguito, qualsiasi comando specificato con l'opzione -C viene invo-
       cato in un ambiente equivalente alla sostituzione di  comando.   Questo
       dovrebbe stampare una lista di completamenti, uno per riga, sullo stan-
       dard output.  Un backslash pu essere usato per proteggere  un  newline,
       se necessario.

       Una  volta generati tutti i possibili completamenti, ogni filtro speci-
       ficato con l'opzione -X viene applicato alla lista.  Il filtro  un mod-
       ello  come quello usato per l'espansione di percorso; una & nel modello
       sostituita col testo della parola da completare.  Una & letterale si pu
       indicare  con  un  backslash  di protezione; il backslash viene rimosso
       prima della ricerca di una corrispondenza.  Ogni completamento che cor-
       risponde  al  modello viene rimosso dalla lista.  Un ! iniziale nega il
       modello; in questo caso ogni completamento non corrispondente  al  mod-
       ello viene rimosso.

       Infine,  qualsiasi  prefisso e suffisso specificato dalle opzioni - P e
       -S  aggiunto a ogni membro della lista di completamento e il  risultato
       restituito  al codice di completamento readline come lista di completa-
       menti possibili.

       Se le azioni precedentemente applicate non generano corrispondenze, e a
       complete  era  stata  fornita  l'opzione  -o  dirnames quando era stato
       definito comspec, viene tentato il completamento come  nome  di  direc-
       tory.

       Se  a complete era stata fornita l'opzione -o plusdirs quando era stato
       definito comspec, viene tentato il completamento come nomi di directory
       e qualunque corrispondenza  aggiunta ai risultati delle altre azioni.

       Per  default,  se viene trovato un comspec, qualsiasi cosa generi viene
       restituito al codice di completamento come insieme completo di  comple-
       tamenti  possibili.   I  completamenti  di  bash di default non vengono
       tentati, e la readline di default del completamento del  nome  di  file
       disabilitata.  Se l'opzione -o bashdefault era stata fornita a complete
       al momento della definizione di comspec, i completamenti di default  di
       bash  vengono  tentati  se  il  comspec  non genera corrispondenze.  Se
       l'opzione -o default era stata fornita  a  complete  al  momento  della
       definizione  di comspec, i completamenti di default di readline vengono
       effettuati se il comspec (e, se tentato, il completamento di default di
       bash) non genera corrispondenze.

       Quando  un comspec indica che  desiderato il completamento come nome di
       directory, le funzioni di completamento programmabile forzano  readline
       ad  aggiungere  una  barra [/] ai nomi completati che sono collegamenti
       simbolici a directory, dipendente dal valore della variabile  di  read-
       line  mark-directories, indipendentemente dall'impostazione della vari-
       abile di readline mark-symlinked-directories.

CRONOLOGIA

       Quando l'opzione - history del comando incorporato set
        abilitata, la shell fornisce l'accesso alla cronologia dei comandi, la
       lista  dei  comandi precedentemente battuti.  Il valore della variabile
       HISTSIZE  usata come numero di comandi  da  salvare  nell'elenco  della
       cronologia.   Il  testo degli ultimi HISTSIZE comandi (per default 500)
       viene salvato.  La shell immagazzina ogni  comando  nella  lista  della
       cronologia  prima  dell'espansione di parametro e di variabile (si veda
       ESPANSIONE sopra) ma dopo  che   stata  effettuata  l'espansione  della
       cronologia, dipendente dai valori delle variabili di shell HISTIGNORE e
       HISTCONTROL.

       All'avvio, la cronologia  inizializzata dal file indicato  dalla  vari-
       abile  HISTFILE  (per  default  ~/.bash_history).  Il file indicato dal
       valore di HISTFILE viene troncato, se necessario, per contenere non  pi
       del  numero  di  righe specificate dal valore di HISTFILESIZE .  Quando
       una shell interattiva esce, le ultime $HISTSIZE righe  vengono  copiate
       dalla  lista  della  cronologia  su  $HISTFILE.   Se l'opzione di shell
       histappend
        abilitata (si veda la descrizione di shopt sotto  COMANDI  INCORPORATI
       DELLA  SHELL  pi  avanti),  le  righe  vengono  accodate  al file della
       cronologia,  in  caso  contrario  il  file   della   cronologia   viene
       sovrascritto.   Se  HISTFILE  non  impostato o il file della cronologia
       non scrivibile, la cronologia non viene salvata.  Dopo  il  salvataggio
       della  cronologia  il file della cronologia  troncato per contenere non
       pi di HISTFILESIZE righe.  Se HISTFILESIZE non  impostato, nessun tron-
       camento viene effettuato.

       Il  comando  incorporato fc (si veda COMANDI INCORPORATI DELLA SHELL pi
       avanti) pu essere usato per elencare o editare e rieseguire  una  parte
       della lista della cronologia.  Il comando incorporato history pu essere
       usato per mostrare o modificare la lista della cronologia e  manipolare
       il  file di cronologia.  Quando si usa l'editing della riga di comando,
       sono disponibili comandi di ricerca in ciascun modo di editing che for-
       nisce accesso alla lista della cronologia.

       La  shell  permette  il  controllo su quali comandi salvare nella lista
       della cronologia.  Le variabili HISTCONTROL e HISTIGNORE possono essere
       definite  in  modo  tale  che  la  shell salvi solo un sottoinsieme dei
       comandi immessi.  L'opzione di shell cmdhist , se abilitata, fa  s  che
       la  shell  tenti  di  salvare  ogni  riga di un comando multiriga nello
       stesso elemento della cronologia, aggiungendo dei punti e virgola  dove
       necessario  per  preservare  le  correttezza  sintattica.  L'opzione di
       shell lithist chiede alla shell di salvare i comandi con  i  codici  di
       fine riga (newline) inclusi invece che separare i comandi con dei punti
       e virgola.  Si veda la descrizione del  comando  incorporato  shopt  pi
       avanti,  sotto COMANDI INCORPORATI DELLA SHELL per informazioni su come
       definire e annullare le opzioni di shell.

ESPANSIONE DELLA CRONOLOGIA

       La shell ha la capacit di espandere la  cronologia  in  maniera  simile
       all'espansione  della  cronologia  in  csh.  Questa sezione descrive le
       possibilit di sintassi disponibili.  Questa possibilit   abilitata  per
       default  per  le  shell  interattive,  e  pu essere disabilitata usando
       l'opzione +H del comando incorporato set (si veda  COMANDI  INCORPORATI
       DELLA  SHELL  pi  avanti).   Le  shell  non  interattive non effettuano
       l'espansione della cronologia per default.

       Le espansioni della cronologia  inseriscono  parole  dall'elenco  della
       cronologia  nel  flusso di input, agevolando la ripetizione di comandi,
       l'inserimento di argomenti di comandi precedenti nella  riga  di  input
       corrente, o la correzione rapida di errori in comandi gi immessi.

       L'espansione  della  cronologia  effettuata immediatamente dopo che una
       riga completa  stata letta, prima che la shell  la  divida  in  parole.
       Essa  ha  luogo  in  due  parti.   La prima  per determinare quale riga
       dall'elenco della cronologia usare durante la sostituzione.  La seconda
       per  selezionare parti di quella riga da includere nella riga corrente.
       La riga selezionata dalla cronologia  l'evento, e la  parte  di  quella
       riga  su  cui  si  agisce  sono  le  parole.  Diversi modificatori sono
       disponibili per manipolare le parole selezionate.  La riga  spezzata in
       parole  allo  stesso  modo che quando letta in input, cos che pi parole
       separate da metacarattericircondate da caratteri di quotatura sono con-
       siderate come una sola parola.  Le espansioni della cronologia iniziano
       con la comparsa di un carattere di espansione della cronologia, che   !
       per  default.  Solo il backslash (\) e gli apostrofi possono quotare il
       carattere di espansione della cronologia.

       Diversi  caratteri  inibiscono  l'espansione  della  cronologia  quando
       trovati  immediatamente  dopo il carattere di espansione della cronolo-
       gia, anche se non quotato: spazio, carattere di  tabulazione,  newline,
       carriage  return e =.  Se l'opzione di shell estglob abilitata, anche (
       inibisce l'espansione.

       Diverse opzioni di shell impostabili col comando incorporato shopt pos-
       sono  essere  usate  per  influenzare  il comportamento dell'espansione
       della cronologia.  Se l'opzione di shell histverify
        abilitata (si veda la descrizione del comando incorporato shopt  ),  e
       si  sta  usando readline , le sostituzioni della cronologia non vengono
       passate immediatamente all'analizzatore della shell.  Invece,  la  riga
       espansa   ricaricata  nel  buffer  di editing di readline per ulteriori
       modifiche.  Se si sta usando readline ed  abilitata l'opzione di  shell
       histreedit , una sostituzione di cronologia non completata con successo
       viene ricaricata nel buffer di editing di readline per essere corretta.
       L'opzione  -p al comando incorporato history pu essere usata per vedere
       cosa farebbe un'espansione della cronologia prima  di  usarla  davvero.
       L'opzione  -s  del  comando  incorporato  history  pu  essere usata per
       aggiungere  comandi  alla  fine  della  lista  della  cronologia  senza
       eseguirli  veramente,  in modo che siano disponibili per essere richia-
       mati in un secondo tempo.  La shell  permette  il  controllo  dei  vari
       caratteri  usati dal meccanismo di espansione della cronologia (si veda
       la precedente descrizione di histchars sotto Variabili di shell).

   Designatore di evento
       Un designatore di evento  un riferimento  a  un  elemento  di  riga  di
       comando nella lista della cronologia.

       !      Inizia  una sostituzione di cronologia, tranne quando seguita da
              un blank, newline, carriage return, = o ( (quando  l'opzione  di
              shell extglob  abilitata usando il comando incorporato shopt).
       !n     Designa la riga di comando n.
       !-n    Designa la riga di comando corrente meno n.
       !!     Designa il comando precedente.  Questo  un sinonimo per `!-1'.
       !stringa
              Designa il comando pi recente che inizia con stringa.
       !?stringa[?]
              Designa il comando pi recente che contiene stringa.  Il ? finale
              pu essere omesso se stringa
               seguita immediatamente da un codice di fine riga (newline).
       ^string1^string2^
              Sostituzione  rapida.   Ripete  l'ultimo  comando,  rimpiazzando
              stringa1        con        stringa2.         Equivalente       a
              ``!!:s/stringa1/stringa2/'' (si veda Modificatori pi avanti).
       !#     L'intera riga di comando battuta fino a questo punto.

   Designatori di parola
       I designatori di parola sono usati per selezionare parole  dall'evento.
       Un  :  separa  la  specificazione  di evento dal designatore di parola.
       Esso pu essere omesso se il designatore di parola inizia con un  ^,  $,
       *,  -  o  %.   Le parole sono numerate dall'inizio della riga, la prima
       parola essendo denotata da uno 0 (zero).  Le parole sono inserite nella
       riga corrente separate da spazi singoli.

       0 (zero)
              La  parola numero zero.  Per la shell, questa la parola che cos-
              tituisce il nome del comando.
       n      La n-esima parola.
       ^      Il primo argomento.  Cio, la parola 1.
       $      L'ultimo argomento.
       %      La parola che combacia con `?stringa?' nella pi recente ricerca.
       x-y    Un intervallo di parole; `-y' abbrevia `0-y'.
       *      Tutte  le parole tranne la numero zero.  Questo  un sinonimo per
              `1-$'.   Non   un  errore  usare  *  se  vi   solo  una   parola
              nell'evento; in quel caso il risultato  una stringa vuota.
       x*     Abbrevia x-$.
       x-     Abbrevia x-$ come x*, ma omette l'ultima parola.

       Se  un  designatore  di  parola   fornito  senza  una specificazione di
       evento, il comando precedente viene usato come evento.

   Modificatori
       Dopo l'opzionale designatore di parola, pu comparire  una  sequenza  di
       uno o pi fra i seguenti modificatori, ognuno preceduto da un `:'.

       h      Rimuove  un componente finale in un nome di file, lasciando solo
              la testa.
       r      Rimuove un suffisso finale della forma .xxx, lasciando  il  nome
              base (basename).
       e      Rimuove tutto tranne il suffisso finale.
       t      Rimuove tutti i componenti di testa in un percorso, lasciando la
              coda.
       p      Stampa il nuovo comando ma non lo esegue.
       q      Quota le parole sostituite, prevenendo ulteriori sostituzioni.
       x      Quota le parole sostituite, come con q, ma spezza in parole  sui
              blank e newline.
       s/vecchio/nuovo/
              Sostituisce nuovo alla prima occorrenza di vecchio nella riga di
              evento.  Qualsiasi delimitatore pu essere usato al posto  di  /.
              Il  delimitatore  finale   opzionale se esso  l'ultimo carattere
              della riga di evento.  Il delimitatore pu essere quotato in vec-
              chio  e  nuovo con un singolo backslash.  Se compare & in nuovo,
              esso  sostituito da vecchio.   Un  singolo  backslash  quota  il
              carattere &.  Se vecchio
               nullo, viene impostato all'ultimo vecchio sostituito o, se nes-
              suna sostituzione di cronologia  avvenuta, l'ultima  stringa  in
              una ricerca di !?stringa[?]
       &      Ripete la precedente sostituzione.
       g      Fa  s  che  i  cambiamenti  siano  applicati sull'intera riga di
              evento.   Questo  si  usa  in  congiunzione  con  `:s'   (p.es.,
              `:gs/vecchio/nuovo/')  o  `:&'.   Se  usato  con `:s', qualsiasi
              delimitatore pu essere usato al posto di /,  e  il  delimitatore
              finale   opzionale  se  l'ultimo carattere della riga di evento.
              Un a pu essere usato come sinonimo di g.
       G      Applica il modificatore che segue `s' una volta  a  ogni  parola
              nella riga di evento.

COMANDI INCORPORATI DELLA SHELL

       Se  non  diversamente indicato, ogni comando incorporato documentato in
       questa sezione, il quale accetti opzioni precedute da -  ,  accetta  --
       per indicare la fine delle opzioni.  Per esempio, i comandi incorporati
       :, true, false e test non accettano opzioni.
       : [argomenti]
              Nessun effetto; il comando non fa  niente,  tranne  l'espansione
              degli  argomenti  e l'effettuazione di ogni ridirezione specifi-
              cata.
               ritornato un codice di uscita zero.

        .  nomefile [argomenti]
       source nomefile [argomenti]
              Legge ed esegue comandi dal nomefile nell'ambiente di shell cor-
              rente  e  ritorna lo stato d'uscita dell'ultimo comando eseguito
              contenuto in nomefile.  Se nomefile non contiene una barra  [/],
              i  percorsi  in  PATH sono usati per trovare la directory conte-
              nente nomefile.  Il file cercato  in  PATH  non  ha  bisogno  di
              essere  marcato  come  eseguibile.   Quando bash non  in modalit
              posix, viene ricercata la  directory  corrente  se  nessun  file
              viene  trovato  in  PATH.   Se  l'opzione sourcepath del comando
              incorporato shopt
               disattivata, il PATH non viene usato per  ricercare.   Se  sono
              forniti  degli argomenti, essi diventano i parametri posizionali
              quando nomefile  eseguito.  Altrimenti i  parametri  posizionali
              sono  inalterati.   Lo  stato  di  ritorno  lo stato dell'ultimo
              comando terminato dentro lo script (0 se  nessun  comando   ese-
              guito),  e  falso  se nomefile non viene trovato o non pu essere
              letto.

       alias [-p] [nome[=valore] ...]
              Alias senza argomenti o con l'opzione -p stampa la  lista  degli
              alias  nella  forma  alias  nome=valore  sullo  standard output.
              Quando sono forniti argomenti, viene definito un alias per  ogni
              nome  per  cui  dato il valore.  Uno spazio finale a valore fa s
              che la parola seguente sia controllata per  la  sostituzione  di
              alias  quando  l'alias   espanso.   Per ogni nome nella lista di
              argomenti per cui nessun valore  fornito,  stampato il nome e il
              valore  dell'alias.  Alias ritorna 0 [vero] a meno che non venga
              dato un nome per il quale nessun alias  stato definito.

       bg [jobspec ...]
              Riprende ogni job sospeso jobspec in background, come  se  fosse
              stato  avviato  con  &.  Se jobspec non  presente,  usata quello
              che la shell considera  essere  il  job  corrente.   bg  jobspec
              ritorna  0  tranne quando viene eseguito con il job-control dis-
              abilitato o, se eseguito con il job-control abilitato,  se  job-
              spec  non   stato  trovato o  stato avviato senza usare job-con-
              trol.

       bind [-m keymap] [-lpsvPSV]
       bind [-m keymap] [-q funzione] [-u funzione] [-r keyseq]
       bind [-m keymap] -f nomefile
       bind [-m keymap] -x keyseq:comando di shell
       bind [-m keymap] keyseq:nome-funzione
       bind comando readline
              Mostra le correnti associazioni di tasti e funzioni di readline,
              associa una sequenza di tasti a una funzione o macro di readline
              o imposta una variabile readline .  Ogni argomento che  non  sia
              un'opzione  un comando come apparirebbe in .inputrc, ma ciascuna
              associazione deve essere passata come  argomento  separato;  per
              esempio,  '"\C-x\C-r":  re-read-init-file'.  Le opzioni, se for-
              nite, hanno i seguenti significati:
              -m keymap
                     Usa keymap come mappatura della  tastiera  da  modificare
                     nelle  successive  associazioni.   I nomi accettabili per
                     keymap   sono    emacs,    emacs-standard,    emacs-meta,
                     emacs-ctlx,  vi,  vi-move,  vi-command  e  vi-insert.  vi
                     equivalente   a   vi-command;   emacs    equivalente    a
                     emacs-standard.
              -l     Elenca i nomi di tutte le funzioni di readline.
              -p     Mostra  i  nomi  delle  funzioni di readline e delle loro
                     associazioni in modo tale che possano essere riletti.
              -P     Elenca i nomi delle funzioni di readline  correnti  e  le
                     loro associazioni.
              -v     Mostra i nomi delle variabili di readline e i loro valori
                     in modo tale che possano essere riletti.
              -V     Elenca i nomi delle variabili di readline  correnti  e  i
                     loro valori.
              -s     Mostra  sequenze di tasti di readline associati a macro e
                     le stringhe risultanti in modo tale  che  possano  essere
                     rilette.
              -S     Mostra  sequenze di tasti di readline associate a macro e
                     le stringhe risultanti.
              -f nomefile
                     Legge le associazioni dei tasti dal file nomefile.
              -q funzione
                     Chiede quali tasti invocano la funzione indicata.
              -u funzione
                     Dissocia tutti i tasti associati alla funzione  indicata.
              -r keyseq
                     Rimuove qualsiasi associazione corrente per keyseq.
              -x keyseq:comando di shell
                     Provoca  l'esecuzione  di comando di shell ogni volta che
                     viene immesso keyseq.

              Il valore di ritorno  0 tranne quando  si  specifica  un'opzione
              non riconosciuta o  avvenuto un errore.

       break [n]
              Esce dall'interno di un ciclo for, while, until o select .  Se n
              specificato, interrompe n livelli.  n deve essere >= 1.  Se n
               pi grande del numero di cicli racchiusi,  tutti  i  cicli  rac-
              chiusi vengono terminati.  Il valore di ritorno  0 tranne quando
              la shell non sta eseguendo un ciclo quando break viene eseguito.

       builtin comando-incorporato [argomenti]
              Esegue il comando incorporato specificato, passandogli gli argo-
              menti, e ritorna il suo stato d'uscita.  Questo  utile quando si
              desidera  definire  una  funzione  il  cui  nome lo stesso di un
              comando incorporato della shell, ottenendo  la  funzionalit  del
              comando incorporato attraverso la funzione.  Il comando incorpo-
              rato cd  comunemente ridefinito in questo  modo.   Lo  stato  di
              ritorno   falso  se comando-incorporato non  un comando incorpo-
              rato della shell.

       cd [-L|-P] [dir]
              Cambia la directory corrente con dir.  La variabile HOME
               il dir di default.  La variabile CDPATH definisce i percorsi di
              ricerca  per le directory che contengano dir.  Nomi di directory
              alternative in CDPATH sono separate da due punti (:).   Un  nome
              di  directory nullo in CDPATH indica la directory corrente, cio,
              ``.''.  Se dir inizia con  una  barra  [/],  allora  CDPATH  non
              usato.   L'opzione  -P  dice  di usare la struttura di directory
              fisica invece di seguire i collegamenti simbolici (si veda anche
              l'opzione  -P del comando incorporato set ; l'opzione -L forza a
              seguire i collegamenti simbolici.  Un argomento -
               equivalente a $OLDPWD.  Se viene usato il nome di una directory
              non vuota da CDPATH o se -  il primo argomento, e il cambiamento
              di directory ha  successo,  il  percorso  completo  della  nuova
              directory  di  lavoro  viene  scritto sullo standard output.  Il
              valore di ritorno  0 [vero] se la directory  stata cambiata  con
              successo; falso altrimenti.

       caller [expr]
              Restituisce  il  contesto  di  qualsiasi  chiamata di subroutine
              attiva (una funzione di shell o uno script eseguito coi  comandi
              incorporati .  o source.  Senza expr, il caller mostra il numero
              di riga e il nome di file di origine della chiamata  di  subrou-
              tine  corrente.   Se   fornito un intero non negativo come expr,
              caller mostra il numero di riga, il nome di subroutine e il file
              di  origine  corrispondente a quella posizione nello stack delle
              chiamate  di  esecuzione.   Questa  informazione  aggiuntiva  pu
              essere  usata,  per  esempio,  per stampare uno stack trace.  Il
              frame corrente  il frame 0.  Il  valore  di  ritorno   0  tranne
              quando  la  shell  sta  eseguendo  una  chiamata di subroutine o
              quando expr non corrisponde a una posizione valida  nello  stack
              delle chiamate.

       command [-pVv] comando [arg ...]
              Esegue comando con gli arg sopprimendo la normale ricerca tra le
              funzione di shell.  Sono eseguiti solo i comandi  incorporati  o
              comandi  trovati  in  PATH.   Se   specificata  l'opzione -p, la
              ricerca di comando viene effettuata usando un valore di  default
              per  PATH  usando il quale  garantito che siano trovate tutte le
              utilit standard.  Se  fornita l'opzione -V o -v, viene  stampata
              una  descrizione  di comando.  L'opzione -v provoca la visualiz-
              zazione di una singola parola che indica il comando o il nome di
              file  usato  per  invocare  comando;  l'opzione  -V  produce una
              descrizione pi completa.  Se  fornita l'opzione -V  o  -v  ,  lo
              stato d'uscita  0 se comando
               stato  trovato,  e  1 altrimenti.  Se nessuna delle due opzioni
              fornita e avviene un errore o comando non pu essere trovato,  lo
              stato  d'uscita  127.  Altrimenti, lo stato d'uscita del comando
              incorporato command
               lo stato d'uscita di comando.

        compgen [opzione] [parola]
              Genera possibili corrispondenze di completamento per  parola  in
              accordo  con  le  opzioni,  che possono essere qualsiasi opzione
              accettata dal comando incorporato complete ad eccezione di -p  e
              -r, e scrive le corrispondenze sullo standard output.  Quando si
              usano le  opzioni  -F  o  -C,  le  diverse  variabili  di  shell
              impostate  dai  servizi di completamento programmabile, anche se
              disponibili, non conterranno valori utili.

              Le corrispondenze saranno generate come se il codice di  comple-
              tamento  programmabile  le  avesse  generate direttamente da una
              specifica di completamento con gli stessi flag.  Se viene speci-
              ficata parola, vengono mostrati solo i completamenti disponibili
              per parola.

              Il valore di ritorno  0  [vero],  tranne  quando  viene  fornita
              un'opzione  non  valida,  o non viene generata alcuna corrispon-
              denza.

       complete [-abcdefgjksuv] [-o comp-option] [-A azione] [-G globpat]  [-W
       wordlist] [-P prefisso] [-S suffisso]
              [-X filterpat] [-F funzione] [-C comando] nome [nome ...]
       complete -pr [nome ...]
              Specifica come devono essere completati gli argomenti  per  ogni
              nome.   Se  viene  fornita  l'opzione  -p o se non viene fornita
              alcuna opzione, le specifiche di  completamento  esistenti  sono
              stampate  in  modo  tale  da  essere  riutilizzabili come input.
              L'opzione -r rimuove una specifica  di  completamento  per  ogni
              nome  o, se non  fornito alcun nome, tutte le specifiche di com-
              pletamento.

              Il processo per applicare  queste  specifiche  di  completamento
              quando  si  tenta  il  completamento  della parola  descritto in
              precedenza, sotto  Completamento programmabile.

              Altre opzioni, se specificate,  hanno  i  seguenti  significati.
              Gli  argomenti alle opzioni  -G, -W, e -X (e, se necessario alle
              opzioni  -P e -S)  dovrebbero  essere  quotati  per  proteggerli
              dall'espansione  prima che venga invocato il comando incorporato
              complete .
              -o comp-option
                      L'opzione comp-option controlla diversi aspetti del com-
                      portamento  di  comspec oltre la semplice generazione di
                      completamenti.  comp-option pu essere uno di questi:
                      bashdefault
                              Effettua il resto dei completamenti  di  default
                              di bash se comspec non genera corrispondenze.
                      default Usa il completamento del nome di file di default
                              di readline se  comspec  non  genera  corrispon-
                              denze.
                      dirnames
                              Effettua  il completamento del nome di directory
                              se comspec non genera corrispondenze.
                      filenames
                              Dice a readline che il comspec  genera  nomi  di
                              file,  consentendo  cos  di effettuare qualsiasi
                              elaborazione di uno specifico nome di file (come
                              aggiungere  una barra [/] ai nomi di directory o
                              sopprimere gli spazi finali).  Fatto per  essere
                              usato con le funzioni di shell.
                      nospace Dice  a  readline  di  non aggiungere uno spazio
                              (che viene aggiunto  per  default)  alle  parole
                              completate alla fine della riga.
                      plusdirs
                              Dopo  che  le corrispondenze definite da comspec
                              sono state generate, viene tentato il  completa-
                              mento dei nomi di directory e il risultato viene
                              aggiunto ai risultati delle altre azioni.
              -A azione
                      L'azione pu essere una delle seguenti per  generare  una
                      lista di possibili completamenti:
                      alias   Nome di alias.  Pu anche essere specificata come
                              -a.
                      arrayvar
                              Nomi di variabili di array.
                      binding Nomi di associazioni di tasti Readline.
                      builtin Nomi di comandi  incorporati  della  shell.   Pu
                              anche essere specificata come -b.
                      command Nomi  di  comandi.   Pu anche essere specificata
                              come -c.
                      directory
                              Nomi di directory.  Pu anche essere  specificata
                              come -d.
                      disabled
                              Nomi di comandi incorporati della shell disabil-
                              itati.
                      enabled Nomi di comandi incorporati della  shell  abili-
                              tati.
                      export  Nomi  di variabili di shell esportate.  Pu anche
                              essere specificata come -e.
                      file    Nomi di file.  Pu anche essere specificata  come
                              -f.
                      function
                              Nomi di funzioni di shell.
                      group   Nomi  di  gruppo.   Pu  anche essere specificata
                              come -g.
                      helptopic
                              Argomenti di aiuto come  accettati  dal  comando
                              incorporato help.
                      hostname
                              Nomi  di  host,  come presi dal file specificato
                              dalla variabile di shell HOSTFILE .
                      job     Nomi di job,  se  il  job-control   attivo.   Pu
                              anche essere specificata come -j.
                      keyword Parole  riservate  della shell.  Pu anche essere
                              specificata come -k.
                      running Nomi di job in  esecuzione,  se  il  job-control
                              attivo.
                      service Nome  di  servizi.   Pu anche essere specificata
                              come -s.
                      setopt  Argomenti validi per l'opzione  -o  del  comando
                              incorporato set.
                      shopt   Nomi  di  opzioni  di  shell  come accettati dal
                              comando incorporato shopt.
                      signal  Nomi di segnali
                      stopped Nomi di job sospesi, se il job-control   attivo.
                      user    Nomi  di  utente.   Pu  anche essere specificata
                              come -u.
                      variable
                              Nomi di variabili di  shell.   Pu  anche  essere
                              specificata come -v.
              -G globpat
                      Il  modello di espansione dei nomi di file globpat viene
                      espanso per generare i possibili completamenti.
              -W wordlist
                      La wordlist  suddivisa usando i  caratteri  nella  vari-
                      abile  speciale  IFS  come delimitatori, e viene espansa
                      ogni parola risultante.  I possibili completamenti  sono
                      gli elementi della lista risultante che sono appropriati
                      per la parola da completare.
              -C comando
                      comando viene eseguito in un ambiente di subshell, e  il
                      suo output viene usato come lista di possibili completa-
                      menti.
              -F funzione
                      La funzione di shell funzione viene eseguita  nell'ambi-
                      ente  di  shell  corrente.   Quando finisce, i possibili
                      completamenti sono a disposizione nei valori della vari-
                      abile di array COMPREPLY .
              -X filterpat
                      filterpat  un modello come quelli usati per l'espansione
                      del nome di file.   applicato all'elenco  dei  possibili
                      completamenti  generati  dalle opzioni e dagli argomenti
                      precedenti, e ogni completamento che corrisponde a  fil-
                      terpat viene rimosso dall'elenco.  Un ! iniziale in fil-
                      terpat nega il modello; in questo  caso  ogni  completa-
                      mento che non concorda con filterpat viene rimosso.
              -P prefisso
                      prefisso   aggiunto all'inizio di ogni possibile comple-
                      tamento dopo che sono state  applicate  tutte  le  altre
                      opzioni.
              -S suffisso
                      suffisso  aggiunto alla fine di ogni possibile completa-
                      mento dopo che  sono  state  applicate  tutte  le  altre
                      opzioni.

              Il  valore  di  ritorno   0  [vero]  tranne quando viene fornita
              un'opzione non valida, viene fornita un'opzione  all'infuori  di
              -p  o  -  r  senza un argomento nome, vien fatto un tentativo di
              rimuovere una specifica di completamento  per  un  nome  per  il
              quale non vi sono specifiche, o se si verifica un errore aggiun-
              gendo una specifica di completamento.

       continue [n]
              Riprende la successiva iterazione del ciclo for, while, until  o
              select dentro cui si trova.  Se n
               specificato,  riprende  all'n-esima nidificazione del ciclo.  n
              deve essere >= 1.  Se n
               pi grande del numero di cicli nidificati, riprende  dall'ultimo
              ciclo  esistente  (il  ciclo  a  pi alto livello).  Il valore di
              ritorno  0 tranne quando la shell non si trova all'interno di un
              ciclo quando continue
               eseguito.

       declare [-afFirtx] [-p] [nome[=valore] ...]
       typeset [-afFirtx] [-p] [nome[=valore] ...]
              Dichiara  variabili  e/o  d  loro  degli  attributi.  Se il nome
              omesso, mostra i valori delle variabili.   L'opzione  -p  mostra
              gli  attributi e i valori di ogni nome.  Quando viene usato -p ,
              vengono ignorate opzioni addizionali.  L'opzione -F inibisce  la
              visualizzazione  delle definizioni di funzione; vengono stampati
              solo il nome della funzione e i suoi attributi.  Se l'opzione di
              shell extdebug  abilitata con shopt, il nome di file d'origine e
              il numero di riga dov' definita la  funzione  vengono  anch'esse
              visualizzati.   L'opzione  -F sottintende -f Le seguenti opzioni
              possono essere usate per restringere l'output  alle  sole  vari-
              abili con gli attributi specificati o per assegnare attributi di
              variabili.
              -a     Ogni nome  una variabile di array (si veda Array  sopra).
              -f     Usa solo nomi di funzioni.
              -i     La  variabile   trattata  come  un intero; la valutazione
                     aritmetica (si veda VALUTAZIONE ARITMETICA )
                      effettuata quando alla variabile  assegnato un valore.
              -r     Rende nomi accessibili in sola lettura.   A  questi  nomi
                     non  possono quindi essere assegnati valori da successive
                     istruzioni di assegnamento, e i valori assegnati non pos-
                     sono essere rimossi.
              -t     D  a  ogni nome l'attributo trace.  Le funzioni tracciate
                     ereditano i segnali intercettati  DEBUG  e  RETURN  dalla
                     shell chiamante.  L'attributo trace non ha un significato
                     speciale per le variabili.
              -x     Marca  nomi  per  l'esportazione  ai  successivi  comandi
                     attraverso l'ambiente.

              Usare  `+'  invece di `-' disattiva l'attributo, con l'eccezione
              che +a non pu essere usato per eliminare  una  variabile  array.
              Quando  usato  in una funzione, rende ogni nome locale, come con
              il comando local .  Se un nome di variabile
               seguito da =valore, il valore della variabile  impostato a val-
              ore.  Il valore di ritorno
               0  tranne  quando  viene incontrata un'opzione non valida, vien
              fatto  un  tentativo  di  definire  una  funzione  usando   ``-f
              foo=bar'', vien fatto un tentativo per assegnare un valore a una
              variabile in sola lettura, vien fatto un tentativo per assegnare
              un  valore  a  una  variabile  array  senza usare la sintassi di
              assegnamento composto (si veda Array sopra), uno  dei  nomi  non
              un  nome  valido  di variabile di shell, vien fatto un tentativo
              per disattivare lo stato di sola lettura per  una  variabile  in
              sola  lettura,  vien fatto un tentativo per disattivate lo stato
              di array per una variabile array, o vien fatto un tentativo  per
              mostrare una funzione non esistente con -f.

       dirs [-clpv] [+n] [-n]
              Senza  opzioni,  mostra  la  lista delle directory correntemente
              memorizzate.  La visualizzazione di default  su un singola  riga
              coi  nomi  di  directory  separate  da spazi.  Le directory sono
              aggiunte alla lista  con  il  comando  pushd;  il  comando  popd
              rimuove elementi dalla lista.
              +n     Mostra  l'n-esimo  elemento contando dalla sinistra della
                     lista mostrata da dirs quando   chiamato  senza  opzioni,
                     partendo da zero.
              -n     Mostra  l'n-esimo  elemento  contando  dalla destra della
                     lista mostrata da dirs quando   chiamato  senza  opzioni,
                     partendo da zero.
              -c     Svuota  lo  stack  delle  directory cancellando tutti gli
                     elementi.
              -l     produce un elenco pi lungo; il  formato  di  default  per
                     l'elencazione usa un carattere tilde per indicare la home
                     directory.
              -p     Stampa lo stack delle directory con un elemento per riga.
              -v     Stampa lo stack delle directory con un elemento per riga,
                     anteponendo a ogni elemento il suo indice nello stack.

              Il valore di ritorno  0 tranne quando viene  fornita  un'opzione
              non  valida o n un indice oltre la fine dello stack delle direc-
              tory.

       disown [-ar] [-h] [jobspec ...]
              Senza opzioni, ogni jobspec viene rimosso dalla tabella dei  job
              attivi.   Se  viene  data  l'opzione  -h, ogni jobspec non viene
              rimosso dalla tabella, ma  marcato in modo che SIGHUP non  venga
              inviato  al job se la shell riceve un SIGHUP .  Se non  presente
              alcun jobspec e non viene fornita n l'opzione -a n l'opzione  -r
              ,  viene usato il job corrente.  Se non  specificata alcuna job-
              spec l'opzione -a richiede la rimozione o il marcamento di tutti
              i job; l'opzione -r senza un argomento jobspec restringe l'oper-
              azione ai job in esecuzione.  Il valore  di  ritorno   0  tranne
              quando jobspec non specifica un job valido.

       echo [-neE] [arg ...]
              Emette  gli  arg,  separati da spazi, seguiti da un newline.  Lo
              stato di ritorno  sempre 0.   Se   specificato  -n,  il  newline
              finale   soppresso.   Se   data  l'opzione  -e,  viene abilitata
              l'interpretazione dei successivi caratteri preceduti dal  carat-
              tere  di protezione backslash.  L'opzione -E disabilita l'inter-
              pretazione di questi caratteri di protezione, anche  su  sistemi
              dove  essi  sono  interpretati  per default.  L'opzione di shell
              xpg_echo pu essere usata per determinare dinamicamente  se  echo
              espande  questi  caratteri  di protezione per default oppure no.
              echo non interpreta -- come fine delle opzioni.  echo interpreta
              le seguenti sequenze di protezione:
              \a     allarme (segnale acustico)
              \b     spazio indietro (backspace)
              \c     sopprime il newline finale
              \e     un caratteri di escape
              \f     nuova pagina (form feed)
              \n     nuova riga (newline)
              \r     ritorno carrello (carriage return)
              \t     segno di tabulazione orizzontale
              \v     segno di tabulazione verticale
              \\     backslash
              \0nnn  il  carattere  a otto bit il cui valore  il valore ottale
                     nnn (da zero a tre cifre ottali)
              \xHH   il carattere a otto bit il cui valore  il valore esadeci-
                     male HH (una o due cifre esadecimali)

       enable [-adnps] [-f nomefile] [nome ...]
              Abilita  e  disabilita  i comandi incorporati della shell.  Dis-
              abilitare un comando incorporato  permette  l'esecuzione  di  un
              comando  residente  su  disco  con  lo stesso nome di un comando
              incorporato della shell  senza  dover  specificare  un  percorso
              completo, anche se la shell normalmente cerca i comandi incorpo-
              rati prima di quelli su disco.  Se  usato -n,  ogni  nome   dis-
              abilitato;  altrimenti,  nomi  sono abilitati.  Per esempio, per
              usare il programma binario test trovato  attraverso  il  PATH  ,
              invece   della  versione  incorporata  nella  shell,  si  esegue
              ``enable -n test''.  L'opzione -f richiede di caricare il  nuovo
              comando  incorporato  nome  dall'oggetto condiviso nomefile, sui
              sistemi che supportano il caricamento  dinamico.   L'opzione  -d
              elimina  un comando incorporato precedentemente caricato con -f.
              Se nessun  argomento  nome   specificato,  o  se  viene  fornita
              l'opzione  -p viene stampata una lista di tutti i comandi incor-
              porati della shell.  Senza altri argomenti di opzione  la  lista
              formata  da  tutti  i comandi incorporati della shell abilitati.
              Se  fornito -n, vengono stampati solo i comandi incorporati dis-
              abilitati.   Se   fornito  -a, la lista stampata include tutti i
              comandi incorporati, con l'indicazione per ciascuno  se   abili-
              tato  o no.  Se viene fornito -s, l'output  ristretto ai comandi
              incorporati speciali POSIX.  Il  valore  di  ritorno   0  tranne
              quando  nome  non  un comando incorporato della shell o si veri-
              fica un errore nel caricamento di un nuovo  comando  incorporato
              da un oggetto condiviso.

       eval [arg ...]
              Gli  arg  sono  letti  e concatenati insieme formando un singolo
              comando.  Questo comando  quindi letto ed eseguito dalla  shell,
              e  il  suo  stato  di  uscita  ritornato come valore del comando
              eval.  Se non vi  alcun arg, o vi  sono  solo  argomenti  nulli,
              eval ritorna 0.

       exec [-cl] [-a nome] [comando [argomenti]]
              Se comando
               specificato,  esso sostituisce la shell.  Nessun nuovo processo
              viene  creato.   Gli  argomenti  diventano  gli  argomenti   per
              comando.   Se  viene fornita l'opzione -l la shell pone un trat-
              tino all'inizio dell'arg numero zero passato a comando.   Questo
              quello  che  fa  login(1).  L'opzione -c provoca l'esecuzione di
              comando con un ambiente vuoto.  Se viene  fornita  -a  la  shell
              passa  nome come argomento numero zero del comando eseguito.  Se
              comando non pu essere eseguito per qualche  ragione,  una  shell
              non  interattiva termina, a meno che non sia abilitata l'opzione
              di shell execfail , nel qual caso restituisce  insuccesso.   Una
              shell  interattiva  restituisce  insuccesso  se  il  file non pu
              essere eseguito.  Se comando non  specificato,  qualsiasi  ridi-
              rezione  ha  effetto nella shell corrente, e lo stato di ritorno
              0.  Se si verifica un errore di ridirezione lo stato di  ritorno
              1.

       exit [n]
              Causa l'uscita della shell con uno stato d'uscita n.  Se n
               omesso, lo stato d'uscita
               quello  dell'ultimo  comando  eseguito.   Un'intercettazione di
              segnale su EXIT
               eseguita prima che la shell termini.

       export [-nf] [nome[=parola]] ...
       export -p
              I  nomi  forniti  sono  marcati  per  l'esportazione  automatica
              nell'ambiente  dei comandi eseguiti in seguito.  Se  specificata
              l' opzione -f , i nomi si riferiscono a funzioni.  Se il nome
               omesso o se se  fornita l'opzione -p , viene stampata una lista
              di  tutti  i nomi che sono esportati in questa shell.  L'opzione
              -n provoca la rimozione della propriet di esportazione  da  ogni
              nome.   Se  un nome di variabile  seguito da  =parola, il valore
              della variabile  impostato a parola.  export ritorna  una  stato
              d'uscita di 0 tranne quando viene trovata un'opzione non valida,
              uno dei nomi non  un nome valido di variabile di shell, o  viene
              fornita  l'opzione  -f  con un nome che non  il nome di una fun-
              zione.

       fc [-e nome-editor] [-nlr] [primo] [ultimo]
       fc -s [pat=rep] [cmd]
              Corregge un  comando.   Nella  prima  forma,  un  intervallo  di
              comandi  fra  primo e ultimo viene selezionato dalla lista della
              cronologia.  Primo e ultimo possono essere specificati come  una
              stringa  (per individuare l'ultimo comando che inizia con quella
              stringa) o come numero (un indice nella lista della  cronologia,
              dove  un numero negativo  usato a partire dal numero del comando
              corrente).  Se ultimo non   specificato   impostato  al  comando
              corrente  per  l'elencazione  (cos  che ``fc -l -10'' stampa gli
              ultimi 10 comandi) e a primo altrimenti.  Se primo non  specifi-
              cato   impostato al precedente comando per l'editing e a -16 per
              l'elencazione.

              L'opzione -n sopprime i numeri dei  comandi  quando  li  elenca.
              L'opzione  -r  inverte  l'ordine  dei  comandi.  Se  specificata
              l'opzione -l, i comandi sono  elencati  sullo  standard  output.
              Altrimenti,   invocato l'editor indicato da ename su un file che
              contiene questi comandi.  Se ename
               omesso,  usato il valore della variabile FCEDIT, e il valore di
              EDITOR se FCEDIT non  impostata.  Se n l'una n l'altra variabile
              impostata,
               usato vi Quando l'editing  completato, i comandi  editati  sono
              listati ed eseguiti.

              Nella  seconda  forma, comando  rieseguito dopo che ogni istanza
              di pat  sostituita da rep.  Un utile alias da usare  con  questo
              ``r="fc  -s"'',  cos  che  digitando ``r cc'' si esegue l'ultimo
              comando che inizia con  ``cc''  e  battendo  ``r''  si  riesegue
              l'ultimo comando.

              Se  usata la prima forma, il valore di ritorno  0 a meno che sia
              incontrata un'opzione non valida o primo o  ultimo  specifichino
              righe  di  cronologia fuori dall'intervallo esistente.  Se  for-
              nita l'opzione -e, il valore di ritorno  il  valore  dell'ultimo
              comando  eseguito, o insuccesso se avviene un errore con il file
              temporaneo dei comandi.  Se  usata la seconda forma, lo stato di
              ritorno
               quello  del comando rieseguito, tranne quando cmd non specifica
              una riga di cronologia valida, nel qual caso fc  ritorna  insuc-
              cesso.

       fg [jobspec]
              Riprende jobspec in primo piano, e lo rende il job corrente.  Se
              jobspec non  presente,  usata la nozione della shell di job cor-
              rente.   Il valore di ritorno  quello del comando posto in primo
              piano, o insuccesso se eseguito mentre il job-control  disabili-
              tato  o,  quando  eseguito col job-control abilitato, se jobspec
              non specifica un job valido o jobspec specifica un job  che  era
              stato avviato senza job-control.

       getopts optstring nome [args]
              getopts
               usato  dalle  procedure  di  shell  per  analizzare i parametri
              posizionali.  optstring contiene i caratteri delle  opzioni  che
              devono  essere  riconosciuti;  se  un  carattere  seguito da due
              punti, l'opzione si aspetta di  avere  un  argomento,  che  dovr
              essere separato dalla stessa da spazi bianchi.  I due punti e il
              punto interrogativo non possono essere usati come  caratteri  di
              opzione.   Ogni  volta che  invocato, getopts pone la successiva
              opzione nella variabile di shell nome,  inizializzando  nome  se
              non esiste, e l'indice del prossimo argomento da elaborare nella
              variabile OPTIND.  OPTIND
               inizializzato a 1 ogni volta che la shell o uno script di shell
              viene   invocato.   Quando  un'opzione  richiede  un  argomento,
              getopts pone quell'argomento nella variabile OPTARG.   La  shell
              non  reimposta  OPTIND  automaticamente;  questa  variabile deve
              essere manualmente reimpostata tra pi chiamate a getopts  dentro
              la  stessa esecuzione della shell, se deve essere usato un nuovo
              insieme di parametri.

              Quando viene raggiunta la fine delle opzioni getopts esce con un
              valore   di   ritorno   maggiore  di  zero.   OPTIND   impostato
              all'indice del  primo  argomento  senza  opzioni  e  nome  viene
              impostato a ?.

              getopts  normalmente  analizza i parametri posizionali, ma se pi
              argomenti vengono dati in args, getopts analizza solo quelli.

              getopts pu informare degli errori in  due  modi.   Se  il  primo
              carattere di optstring
               un  due  punti,   usata  un'informazione di errore silenziosa .
              Normalmente i messaggi diagnostici vengono stampati quando  ven-
              gono  trovate  opzioni  non  valide  o  mancano  argomenti  alle
              opzioni.  Se la variabile OPTERR
               impostata a 0, nessun messaggio di errore viene mostrato, anche
              se il primo carattere di optstring non  due punti.

              Se  incontrata un'opzione non valida, getopts pone ? nel nome e,
              se non silenziosa, stampa  un  messaggio  di  errore  e  annulla
              OPTARG.  Se getopts
               silenziosa,  il carattere di opzione trovato  posto in OPTARG e
              nessun messaggio diagnostico  stampato.

              Se un argomento richiesto non  trovato, e  getopts  non   silen-
              ziosa,  un  punto interrogativo (?)  posto in nome, OPTARG viene
              annullato,  e  viene  stampato  un  messaggio  diagnostico.   Se
              getopts
               silenziosa, allora un carattere di due punti (:)  posto in nome
              e OPTARG
               impostato al carattere di opzione trovato.

              getopts ritorna 0 [vero] se viene trovata  un'opzione,  specifi-
              cata  o  non  specificata.  Ritorna falso se viene incontrata la
              fine delle opzioni o avviene un errore.

       hash [-lr] [-p nomefile] [-dt] [nome]
              Per ciascun nome, il percorso completo del comando   determinato
              ricercando  le directory in $PATH e viene memorizzato.  Se viene
              fornita l'opzione -p , non viene effettuata nessuna  ricerca  di
              percorso e nomefile
               usato come nome completo del comando.  L'opzione -r fa s che la
              shell dimentichi tutte le i percorsi memorizzati.  L'opzione  -d
              fa  s  che  la  shell  dimentichi i percorsi memorizzati di ogni
              nome.  Se viene fornita l'opzione -t
               stampato il percorso completo al quale corrisponde  ogni  nome.
              Se  vengono  forniti  argomenti multipli di nome con -t, il nome
              viene  stampato  prima  del   percorso   completo   indicizzato.
              L'opzione  -l  provoca la visualizzazione dell'output in un for-
              mato riutilizzabile come input.  Se nessun argomento   dato,  ed
              fornito  solo -l,  stampata l'informazione circa i comandi memo-
              rizzati.  Lo stato di ritorno  0 [vero] tranne quando nome
               irreperibile o viene fornita un'opzione non valida.

       help [-s] [modello]
              Mostra utili informazioni sui i comandi incorporati.  Se modello
               specificato,  help  fornisce  un  aiuto  dettagliato su tutti i
              comandi  che  corrispondono  al  modello;  altrimenti   stampato
              l'aiuto  per  tutti i comandi incorporati e le strutture di con-
              trollo della shell.   L'opzione  -s  restringe  le  informazioni
              visualizzate a una breve sintassi d'uso.  Lo stato di ritorno  0
              tranne quando nessun comando  individuato dal modello.

       history [n]
       history -c
       history -d offset
       history -anrw [nomefile]
       history -p arg [arg ...]
       history -s arg [arg ...]
              Senza opzioni, mostra la lista della cronologia dei comandi  con
              i numeri di riga.  Le righe elencate con un * sono state modifi-
              cate.  Con l'argomento n elenca solo le ultime n righe.   Se  la
              variabile di shell HISTTIMEFORMAT  impostata e non nulla,
               usata  come  stringa  di formato di strftime(3) per mostrare la
              data/ora associata a ogni elemento  della  cronologia.   Nessuno
              spazio   interposto  fra  la data/ora formattata e la riga della
              cronologia.  Se  fornito nomefile, questo  usato come  nome  del
              file  di  cronologia;  altrimenti,  usato il valore di HISTFILE.
              Le opzioni, se fornite, hanno i seguenti significati:
              -c     Svuota l'elenco della  cronologia  eliminando  tutti  gli
                     elementi.
              -d offset
                     Cancella  l'elemento della cronologia alla posizione off-
                     set.
              -a     Accoda le ``nuove'' righe della cronologia  (righe  della
                     cronologia  inserite  dall'inizio della corrente sessione
                     di bash) al file di cronologia.
              -n     Inserisce le righe della cronologia non ancora lette  dal
                     file di cronologia nella corrente lista della cronologia.
                     Queste sono le  righe  accodate  al  file  di  cronologia
                     dall'inizio della corrente sessione di bash.
              -r     Legge  il  contenuto del file di cronologia e lo usa come
                     cronologia corrente.
              -w     scrive la cronologia corrente  sul  file  di  cronologia,
                     sovrascrivendo il contenuto del file di cronologia.
              -p     Effettua  la  sostituzione  della cronologia sui seguenti
                     arg e mostra il risultato  sullo  standard  output.   Non
                     conserva il risultato nell'elenco della cronologia.  Ogni
                     arg dev'essere quotato per disabilitare la normale espan-
                     sione della cronologia.
              -s     Memorizza  gli  arg  nell'elenco della cronologia come un
                     singolo  comando.   L'ultimo  comando  nell'elenco  della
                     cronologia  viene  rimosso  prima  che  gli  arg  vengano
                     aggiunti.

              Se HISTTIMEFORMAT  impostata, l'informazione data/ora  associata
              a ogni elemento di cronologia viene scritta nel file di cronolo-
              gia.  Il valore di ritorno  0  tranne  quando  viene  incontrata
              un'opzione  non  valida,  avviene un errore mentre si legge o si
              scrive il file di cronologia, viene fornito un offset non valido
              come argomento a -d o l'espansione della cronologia fornita come
              argomento a -p non ha successo.

       jobs [-lnprs] [ jobspec ... ]
       jobs -x comando [ args ... ]
              La prima forma elenca i job attivi.  Le opzioni hanno i seguenti
              significati:
              -l     Elenca  gli  ID  dei  processi  in  aggiunta alle normali
                     informazioni.
              -p     Elenca solo l'ID  di  processo  del  principale  job  del
                     gruppo di processo.
              -n     Mostra  le  informazioni  solo sui job che hanno cambiato
                     stato dall'ultima notifica di stato mostrata  all'utente.
              -r     Restringe l'output ai job in esecuzione.
              -s     Restringe l'output ai job sospesi.

              Se jobspec
               specificato,  l'output  limitato alle informazioni su quel job.
              Lo stato di ritorno  0 a meno che  venga  incontrata  un'opzione
              non valida o sia fornito un jobspec non valido.

              Se   fornita  l'opzione  -x,  jobs sostituisce qualsiasi jobspec
              trovato in comando o args con il corrispondente ID del gruppo di
              processo,  ed  esegue  comando passandogli args, e ritornando il
              suo stato d'uscita.

       kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
       kill -l [sigspec | stato d'uscita]
              Manda il segnale indicato da sigspec o signum al processo  indi-
              cato da pid o jobspec.  sigspec
               o  un nome di segnale, senza distinzione tra maiuscole e minus-
              cole, come SIGKILL, (con o senza il prefisso SIG ) o  un  numero
              di segnale; signum
               un  numero  di  segnale.   Se sigspec non  presente, si suppone
              essere SIGTERM.  Un argomento -l elenca i nomi dei segnali.   Se
              sono  forniti  degli argomenti quando  specificata l'opzione -l,
              sono elencati i nomi dei segnali corrispondenti agli  argomenti,
              e lo stato di ritorno  0.  L'argomento stato d'uscita di -l
               un  numero  che  specifica  o  un  numero di segnale o lo stato
              d'uscita di un processo terminato da un segnale.  kill  restitu-
              isce  0 [vero] se almeno un segnale  stato inviato con successo,
              o falso se avviene un errore o  se   incontrata  un'opzione  non
              valida.

       let arg [arg ...]
              Ogni arg
               un'espressione  aritmetica  che  deve  essere valutata (si veda
              VALUTAZIONE ARITMETICA).  Se l'ultimo arg viene valutato 0,  let
              ritorna 1; altrimenti  ritornato 0.

       local [opzione] [nome[=valore] ...]
              Per  ogni  argomento  viene creata una variabile locale chiamata
              nome e le viene  assegnato  valore.   L'opzione  pu  essere  una
              qualunque delle opzioni accettate da declare.  Quando local
               usato dentro una funzione, fa s che la variabile nome abbia una
              visibilit ristretta a quella funzione e ai  suoi  figli.   Senza
              alcun operando, local scrive una lista di variabili locali sullo
              standard output.
               un errore usare local quando non si  dentro una  funzione.   Lo
              stato di ritorno  0 tranne quando local
               usata fuori da una funzione, viene fornito un nome non valido o
              nome  una variabile in sola lettura.

       logout Termina una shell di login.

       popd [-n] [+n] [-n]
              Rimuove degli elementi dallo stack delle directory.  Senza argo-
              menti,  rimuove  la directory in cima allo stack, ed effettua un
              cd verso la nuova directory in cima allo stack.  Gli  argomenti,
              se forniti, hanno il seguente significato:
              +n     Rimuove  l'n-esimo elemento contando dalla sinistra della
                     lista mostrata da dirs, partendo da zero.   Per  esempio:
                     ``popd  +0''  rimuove  la prima directory, ``popd +1'' la
                     seconda.
              -n     Rimuove l'n-esimo elemento contando  dalla  destra  della
                     lista  mostrata  da dirs, partendo da zero.  Per esempio:
                     ``popd -0'' Rimuove l'ultima directory,  ``popd  -1''  la
                     penultima.
              -n     Sopprime  il  normale  cambiamento  di  directory  quando
                     rimuove directory dallo  stack,  ossia  viene  manipolato
                     solo lo stack.

              Se  il comando popd ha successo, viene anche effettuato un dirs,
              e lo stato di ritorno  0.  popd ritorna falso  se  viene  incon-
              trata  un'opzione  non  valida, lo stack delle directory  vuoto,
              specificato un elemento non esistente nello stack  delle  direc-
              tory, o il cambio di directory non ha successo.

       printf [-v var] formato [argomenti]
              Scrive  gli  argomenti formattati sullo standard output sotto il
              controllo del formato.  Il formato
               una stringa di caratteri che  contiene  tre  tipi  di  oggetti:
              caratteri  semplici,  i  quali  sono semplicemente copiati sullo
              standard output, sequenze di protezione dei caratteri, che  sono
              convertite e copiate sullo standard output, e specifiche di for-
              mato,  ognuna  delle  quali  provoca  la  stampa  dell'argomento
              seguente.   In  aggiunta  ai formati printf(1) standard, %b fa s
              che  printf  espanda  le  sequenze   di   protezione   backslash
              nell'argomento  corrispondente  (con  l'eccezione che \c fa ter-
              minare l'output, i backslash in \', \" e \? non sono  rimossi  e
              gli  escape  ottali che iniziano con \0 possono contenere fino a
              quattro cifre), e %q fa s che printf stampi sull'output  l'argo-
              mento  corrispondente in un formato riutilizzabile come input di
              shell.

              L'opzione -v fa s che l'output sia assegnato alla variabile  var
              invece di essere stampato sullo standard output.

              Il  formato   riutilizzato  pi  volte fino all'esaurimento degli
              argomenti.  Se il formato richiede pi argomenti di  quelli  for-
              niti, le specifiche di formato extra si comportano come se fosse
              stato fornito, a seconda del caso, il valore zero o una  stringa
              nulla.   Il valore di ritorno  0 in caso di successo, diverso da
              zero in caso di insuccesso.

       pushd [-n] [dir]
       pushd [-n] [+n] [-n]
              Aggiunge una directory in cima allo  stack  delle  directory,  o
              ruota  lo  stack, rendendo la nuova cima dello stack la corrente
              directory di lavoro.  Senza argomenti, scambia le due  directory
              in cima e ritorna 0, a meno che lo stack delle directory non sia
              vuoto.  Gli argomenti, se forniti, hanno  il  seguente  signifi-
              cato:
              +n     Ruota  lo  stack  cos  che la n-esima directory (contando
                     dalla sinistra della lista mostrata da dirs, partendo  da
                     zero) vada in cima.
              -n     Ruota  lo stack cos che la n-esima directory (contando da
                     destra della lista mostrata da dirs,  partendo  da  zero)
                     vada in cima.
              -n     Sopprime il normale cambio di directory quando si aggiun-
                     gono directory allo stack, ossia viene manipolato solo lo
                     stack.
              dir    Aggiunge  dir in cima allo stack delle directory, renden-
                     dola la nuova directory di lavoro corrente.

              Se il comando pushd ha successo, viene anche effettuato un  dirs
              .   Se   usata  la prima forma, pushd ritorna 0 a meno che il cd
              verso dir non abbia  successo.   Con  la  seconda  forma,  pushd
              ritorna 0 tranne quando lo stack delle directory  vuoto,
               specificato  un elemento non esistente nello stack delle direc-
              tory, o il cambiamento di directory  verso  la  nuova  directory
              corrente specificata non ha successo.

       pwd [-LP]
              Stampa  il percorso assoluto della corrente directory di lavoro.
              Il percorso stampato non contiene alcun  collegamento  simbolico
              se   fornita  l'opzione  -P  o  l'opzione -o physical al comando
              incorporato set
               abilitata.  Se viene usata l'opzione -L il percorso stampato pu
              contenere collegamenti simbolici.  Lo stato di ritorno  0 tranne
              quando avviene un errore  mentre  si  legge  il  percorso  della
              directory corrente o viene fornita un'opzione non valida.

       read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d
       delim] [nome ...]
              Viene  letta una riga dallo standard input, o dal descrittore di
              file fd fornito come  argomento  dell'opzione  -u,  e  la  prima
              parola   assegnata  al  primo nome, la seconda parola al secondo
              nome, e cos via, e le parole  rimaste,  compresi  i  separatori,
              sono  assegnate  all'ultimo  nome.  Se ci sono meno parole lette
              dalla riga di input che nomi, ai nomi rimanenti  vengono  asseg-
              nati  valori  nulli.   I  caratteri in IFS sono usati per suddi-
              videre la riga in parole.  Il carattere backslash  \  pu  essere
              usato  per  rimuovere qualsiasi significato speciale dal succes-
              sivo carattere  letto  e  per  la  continuazione  di  riga.   Le
              opzioni, se fornite, hanno il seguente significato:
              -a aname
                     Le parole sono assegnate a indici sequenziali della vari-
                     abile array aname, partendo da 0.  aname viene  annullata
                     prima  dell'assegnamento  dei  nuovi valori.  Altri argo-
                     menti nome vengono ignorati.
              -d delim
                     Il primo carattere di delim  usato per far  terminare  la
                     riga di input, invece di newline.
              -e     Se  lo standard input viene da un terminale, readline (si
                     veda READLINE sopra)  usato per ottenere la riga.
              -n nchars
                     read  considerata completata  dopo  aver  letto  inchars,
                     invece di aspettare una riga di input completa.
              -p prompt
                     Visualizza  prompt sullo standard error, senza un newline
                     finale, prima di tentare di leggere qualsiasi input.   Il
                     prompt   mostrato  solo  se l'input proviene da un termi-
                     nale.
              -r     Backslash non fa da carattere di  protezione.   Il  back-
                     slash   considerato  come  parte della riga.  In partico-
                     lare, una coppia backslash-newline non  pu  essere  usata
                     come una continuazione di riga.
              -s     Modalit  silenziosa.   Se l'input viene da un terminale i
                     caratteri immessi non vengono visualizzati sul terminale.
              -t timeout
                     Fa  s  che read vada fuori tempo massimo e ritorni insuc-
                     cesso se un riga completa di input non viene letta  entro
                     timeout  secondi.   Quest'opzione  non produce effetti se
                     read non sta leggendo l'input da un terminale  o  da  una
                     pipe.
              -u fd  Legge l'input dal descrittore di file fd.

              Se  non sono forniti nomi la riga viene assegnata alla variabile
              REPLY.  Lo stato d'uscita  0, tranne quando viene  raggiunta  la
              fine del file, read esaurisce il tempo limite consentito o viene
              fornito un descrittore di file non valido come argomento a -u.

       readonly [-apf] [nome[=parola] ...]
              I nomi dati sono da considerare in sola  lettura;  i  valori  di
              questi  nomi non possono essere cambiati dagli assegnamenti suc-
              cessivi.  Se  fornita l'opzione -f, sono cos marcate le funzioni
              corrispondenti  ai  nomi.   L'opzione  -a restringe le variabili
              agli array.  Se nessun argomento nome
               dato, o se  fornita l'opzione -p, viene stampata una  lista  di
              tutti i nomi in sola lettura.  L'opzione -p provoca la visualiz-
              zazione dell'output in un formato riutilizzabile come input.  Se
              un  nome  di variabile  seguito da =parola il valore della vari-
              abile  impostato a parola.  Lo stato di ritorno  0 tranne quando
              incontrata  un'opzione  non valida, uno dei nomi non  un nome di
              variabile di shell valido, o viene fornita l'opzione -f  con  un
              nome che non  una funzione.

       return [n]
              Fa  s che una funzione esca con il valore di ritorno specificato
              da n.  Se n
               omesso, lo stato di ritorno  quello  dell'ultimo  comando  ese-
              guito nel corpo della funzione.  Se usato fuori da una funzione,
              ma durante l'esecuzione  di  un  script  tramite  il  comando  .
              (source),  fa  s che la shell smetta di eseguire quello script e
              ritorni o n o lo stato  d'uscita  dell'ultimo  comando  eseguito
              dentro  lo  script  come  stato d'uscita dello script.  Se usato
              fuori da una funzione e non durante l'esecuzione di  uno  script
              per  mezzo  di ., lo stato di ritorno  falso.  Qualsiasi comando
              associato alla gestione del segnale RETURN viene eseguito  prima
              che l'esecuzione riprenda dopo la funzione o script.

       set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
              Senza  opzioni,  il  nome e il valore di ogni variabile di shell
              vengono visualizzati in un formato riutilizzabile come input per
              impostare  o reimpostare le variabili attualmente impostate.  Le
              variabili in sola lettura non possono  essere  reimpostate.   In
              modalit  posix sono elencate solo le variabili di shell.  L'out-
              put  ordinato in base alla localizzazione corrente.  Quando sono
              specificate  opzioni,  queste impostano o annullano attributi di
              shell.  Gli argomenti che rimangono dopo  che  le  opzioni  sono
              state  elaborate  sono  trattati  come  valori  per  i parametri
              posizionali e vengono assegnati, nell'ordine, a $1, $2, ...  $n.
              Le opzioni, se specificate, hanno i seguenti significati:
              -a      Automaticamente  marca  le  variabili  e le funzioni che
                      sono  modificate  o  create,  come  da  esportare  verso
                      l'ambiente dei comandi successivi.
              -b      Riporta  immediatamente  lo  stato dei job in background
                      terminati, invece che  prima  di  stampare  il  prossimo
                      prompt primario.  Questo  applicabile solo quando  abil-
                      itato il job-control.
              -e      Esce immediatamente se  un  comando  semplice  (si  veda
                      GRAMMATICA  DELLA  SHELL  sopra)  termina  con uno stato
                      diverso da zero.  La shell non esce se  il  comando  che
                      non  ha  successo  fa  parte di un elenco di comandi che
                      segue subito dopo una parola chiave while o until  ,  se
                      fa  parte  di  un  controllo in un'istruzione if , se fa
                      parte di una lista && o || , o se il valore  di  ritorno
                      del  comando   stato  negato per mezzo di !.  Un comando
                      sul segnale intercettato ERR,  se  impostato,   eseguito
                      prima dell'uscita della shell.
              -f      Disabilita l'espansione di percorso.
              -h      Ricorda  la  posizione  dei  comandi  man  mano che sono
                      ritrovati  per  l'esecuzione.   Questa   abilitata   per
                      default.
              -k      Tutti  gli argomenti nella forma di istruzioni di asseg-
                      namento sono posti nell'ambiente  per  un  comando,  non
                      solo quelli che precedono il nome del comando stesso.
              -m      Modo monitor.  Il job-control  abilitato.  Quest'opzione
                      attiva per default per le shell interattive, su  sistemi
                      che  lo  supportano (si veda JOB-CONTROL sopra).  I pro-
                      cessi in background girano in un gruppo di processo sep-
                      arato  e  una  riga  che contiene il loro stato d'uscita
                      viene stampata al termine della loro esecuzione.
              -n      Legge i comandi ma non  li  esegue.   Questo  pu  essere
                      usato  per controllare uno script di shell per errori di
                      sintassi.  Questo viene ignorato se la  shell   interat-
                      tiva.
              -o nome-opzione
                      Il nome-opzione pu essere uno dei seguenti:
                      allexport
                              Lo stesso di -a.
                      braceexpand
                              Lo stesso di -B
                      emacs   Usa  una  interfaccia  di  editing della riga di
                              comando in stile emacs.  Questo   abilitato  per
                              default quando la shell  interattiva, a meno che
                              la shell non sia avviata con l'opzione --noedit-
                              ing.
                      errtrace
                              Lo stesso di -E.
                      functrace
                              Lo stesso di -T.
                      errexit Lo stesso di -e.
                      hashall Lo stesso di -h.
                      histexpand
                              Lo stesso di -H.
                      history Abilita   la   cronologia   dei   comandi,  come
                              descritto  in  precedenza,   sotto   CRONOLOGIA.
                              Questa  opzione   attiva per default nelle shell
                              interattive.
                      ignoreeof
                              L'effetto  lo stesso come se  fosse  stato  ese-
                              guito  il  comando di shell ``IGNOREEOF=10'' (si
                              veda Variabili di shell sopra).
                      keyword Lo stesso di -k.
                      monitor Lo stesso di -m.
                      noclobber
                              Lo stesso di -C.
                      noexec  Lo stesso di -n.
                      noglob  Lo stesso di -f.  nolog Attualmente ignorato.
                      notify  Lo stesso di -b.
                      nounset Lo stesso di -u.
                      onecmd  Lo stesso di -t.
                      physical
                              Lo stesso di -P.
                      pipefail
                              Se  impostato,  il  valore  di  ritorno  di  una
                              pipeline   il valore dell'ultimo comando (quello
                              pi a destra) che esce  con  uno  stato  d'uscita
                              diverso da zero, o zero se tutti i comandi nella
                              pipeline escono con  successo.   Questa  opzione
                              disabilitata per default.
                      posix   Cambia  il  comportamento di bash quando il com-
                              portamento di default differisce da quello stan-
                              dard  POSIX per farlo concordare con la (modalit
                              posix standard.
                      privileged
                              Lo stesso di -p.
                      verbose Lo stesso di -v.
                      vi      Usa un'interfaccia  di  editing  della  riga  di
                              comando in stile vi.
                      xtrace  Lo stesso di -x.





                      Se -o
                       fornito con nessun nome-opzione, sono stampati i valori
                      delle opzioni correnti.  Se +o
                       fornito con nessun nome-opzione, una serie  di  comandi
                      set  per  ricreare le impostazioni dell'opzione corrente
                      viene visualizzata sullo standard output.
              -p      Attiva il modo privilegiato.  In  questo  modo,  i  file
                      $ENV  e  $BASH_ENV non vengono elaborati, le funzioni di
                      shell non sono ereditate dall'ambiente  e  la  variabile
                      SHELLOPTS  ,  se  appare in un ambiente, viene ignorata.
                      Se  la  shell   avviata  con  l'id  (gruppo)   effettivo
                      dell'utente    non    uguale   all'id   (gruppo)   reale
                      dell'utente, e non viene fornita  l'opzione  -p,  queste
                      azioni  vengono  eseguite  e  l'id effettivo dell'utente
                      impostato all'id reale dell'utente.   Se  viene  fornita
                      l'opzione  -p  all'avvio, l'id effettivo dell'utente non
                      reimpostato.  Disattivare questa opzione fa s che gli id
                      effettivi  dell'utente e del gruppo siano impostati agli
                      id reali dell'utente e del gruppo.
              -t      Esce dopo aver letto ed eseguito un comando.
              -u      Considera  errore  le  variabili  non  impostate  quando
                      effettua  l'espansione  di  parametro.   Se l'espansione
                      tentata su una variabile non impostata, la shell  stampa
                      un  messaggio  di errore e, se non interattiva, esce con
                      uno stato diverso da zero.
              -v      Stampa le righe in input alla shell appena sono lette.
              -x      Dopo l'espansione di ogni comando semplice, comando for,
                      comando  case,  comando select o comando for aritmetico,
                      mostra il valore espanso di PS4, seguito dal  comando  e
                      dai suoi argomenti espansi o dall'elenco di parole asso-
                      ciate.
              -B      La shell effettua l'espansione  delle  parentesi  graffe
                      (si  veda  Espansione  delle  parentesi  graffe  sopra).
                      Questo  attivo per default.
              -C      Se impostato, bash non sovrascrive un file esistente con
                      gli   operatori  di  ridirezione  >,  >&  e  <>  .   Una
                      sovrascrittura pu ancora essere ottenuta creando i  file
                      di  output usando l'operatore di ridirezione >| al posto
                      di >.
              -E      Se impostato, ogni segnale intercettato  ERR   ereditato
                      dalle  funzioni  di  shell,  sostituzioni  di  comando e
                      comandi eseguiti in un ambiente di subshell.  Il segnale
                      intercettato  ERR  non  viene  normalmente  ereditato in
                      questi casi.
              -H      Abilita la sostituzione della cronologia in  stile  !  .
                      Quest'opzione    attiva  per  default  quando  la  shell
                      interattiva.
              -P      Se impostato, non segue i collegamenti simbolici  quando
                      esegue  comandi  come  cd  che  cambiano la directory di
                      lavoro corrente.  invece usata la struttura di directory
                      fisica.  Per  default,  bash segue la successione logica
                      delle directory quando si eseguono comandi che  cambiano
                      la directory corrente.
              -T      Se impostata, i comandi sui segnali intercettati DEBUG e
                      RETURN sono ereditati dalle  funzioni  di  shell,  dalle
                      sostituzioni  di  comando  e  dai comandi eseguiti in un
                      ambiente di subshell.  I segnali  intercettati  DEBUG  e
                      RETURN normalmente non vengono ereditati in questi casi.
              --      Se nessun  argomento  segue  questa  opzione,  allora  i
                      parametri   posizionali  sono  assenti.   Altrimenti,  i
                      parametri posizionali sono impostati agli arg, anche  se
                      alcuni di loro iniziano con un -.
              -       Segnala  la fine delle opzioni, e fa s che tutti i rima-
                      nenti arg siano assegnati ai parametri posizionali.   Le
                      opzioni -x e -v sono disattivate.  Se non vi  alcun arg,
                      i parametri posizionali rimangono inalterati.

              Le opzioni sono  disattivate  per  default  se  non  specificato
              diversamente.   Usare  + piuttosto che - causa la disattivazione
              di queste opzioni.  Le opzioni possono anche essere  specificate
              come  argomenti  a  un'invocazione  della  shell.   Il  corrente
              insieme di opzioni pu essere trovato in $-.  Lo stato di ritorno
              sempre  0  [vero] a meno che non si incontri un'opzione non val-
              ida.

       shift [n]
              I parametri posizionali da n+1 ... sono rinominati  $1  ....   I
              parametri  rappresentati  dai  numeri  $# fino a $#-n+1 non sono
              impostati.  n dev'essere un numero non negativo minore o  uguale
              a $#.  Se n
               0, nessun parametro viene cambiato.  Se n
               omesso,  considerato valere 1.  Se n
               pi grande di $#, i parametri posizionali non sono cambiati.  Lo
              stato di ritorno  pi grande di 0 se n
               pi grande di $# o minore di 0; altrimenti 0.

       shopt [-pqsu] [-o] [optname ...]
              Attiva/disattiva i valori di variabili che controllano  il  com-
              portamento   opzionale   della  shell.   Senza  opzioni,  o  con
              l'opzione -p , viene mostrata una  lista  di  tutte  le  opzioni
              impostabili,  con  una  indicazione  se  ognuna  impostata o no.
              L'opzione -p fa s che l'output sia mostrato in una forma che  pu
              essere riutilizzata come input.  Altre opzioni hanno il seguente
              significato:
              -s     Abilita (attiva) ogni optname.
              -u     Disabilita (disattiva) ogni optname.
              -q     Sopprime il normale output (modalit silenziosa); lo stato
                     di ritorno indica se il optname  attivato o non attivato.
                     Se sono dati argomenti optname multipli con -q, lo  stato
                     di ritorno  0 se tutti gli optname sono attivati; diverso
                     da zero altrimenti.
              -o     Restringe i valori  di  optname  a  quelli  definiti  per
                     l'opzione -o del comando incorporato set .

              Se  una  delle  opzioni -s o -u viene usata senza argomenti opt-
              name, la visualizzazione limitata a  quelle  opzioni  che  sono,
              rispettivamente,  attivate  o non attivate.  Se non diversamente
              indicato le opzioni shopt sono disabilitate (non  attivate)  per
              default.

              Lo  stato di ritorno quando vengono elencate delle opzioni  0 se
              tutti gli optname sono abilitati, altrimenti  diverso  da  zero.
              Quando  si impostano o si rimuovono opzioni, lo stato di ritorno
              0 tranne quando optname non  una valida opzione di shell.

              L'elenco delle opzioni di shopt :

              cdable_vars
                      Se impostata, un argomento al comando incorporato cd che
                      non  sia  una directory  considerato come il nome di una
                      variabile il cui valore  la  directory  verso  cui  cam-
                      biare.
              cdspell Se    impostata,    vengono   corretti   errori   minori
                      nell'ortografia di un  componente  di  directory  in  un
                      comando cd .  Gli errori ricercati sono caratteri inver-
                      titi, mancanza di un carattere e un carattere in pi.  Se
                      viene  trovata  una  correzione il nome di file corretto
                      viene stampato e  il  comando  prosegue.   Quest'opzione
                      usata solo dalle shell interattive.
              checkhash
                      Se  impostata,  bash controlla che un comando trovato in
                      una tabella hash esista prima di tentarne  l'esecuzione.
                      Se  un  comando la cui posizione  disponibile in un ele-
                      mento della tabella hash non esiste pi, viene effettuata
                      una normale ricerca di percorso.
              checkwinsize
                      Se  impostata, bash controlla la dimensione della fines-
                      tra dopo ogni comando e, se necessario, aggiorna i  val-
                      ori di LINES e COLUMNS
              cmdhist Se impostata, bash tenta di salvare tutte le righe di un
                      comando  a  riga  multipla  nello  stesso  elemento   di
                      cronologia.   Questo  facilita la ripetizione di comandi
                      multiriga.
              dotglob Se impostata, bash include i nomi di file  che  iniziano
                      con un `.' nel risultato dell'espansione del percorso.
              execfail
                      Se  impostata, una shell non interattiva non esce se non
                      pu  eseguire  il  file  specificato  come  argomento  al
                      comando  incorporato  exec  .  Una shell interattiva non
                      esce se exec non ha successo.
              expand_aliases
                      Se impostata, gli alias vengono espansi  come  descritto
                      in precedenza, sotto ALIASES.  Questa opzione  abilitata
                      per default per le shell interattive.
              extdebug
                      Se impostata, il comportamento previsto per poter  usare
                      dei debugger  abilitato:
                      1.     L'opzione   -F  al  comando  incorporato  declare
                             mostra il nome di file di origine e il numero  di
                             riga  corrispondente a ogni nome di funzione for-
                             nita come argomento.
                      2.     Se il comando eseguito nella gestione del segnale
                             DEBUG  ritorna  un  valore  diverso  da  zero, il
                             comando successivo viene saltato e non  eseguito.
                      3.     Se il comando eseguito nella gestione del segnale
                             DEBUG ritorna il valore 2, e la  shell   in  ese-
                             cuzione  in una subroutine (una funzione di shell
                             o uno script di shell eseguito dai comandi incor-
                             porati   . o source), viene simulata una chiamata
                             a return.
                      4.     BASH_ARGC  e  BASH_ARGV  sono   aggiornati   come
                             descritto nelle loro descrizioni viste sopra.
                      5.     Il tracciamento delle funzioni  abilitato: sosti-
                             tuzione di comando, funzioni di shell, e subshell
                             invocate  con  (  comando  )  ereditano le inter-
                             cettazione di segnale DEBUG e RETURN.
                      6.     Il tracciamento degli errori   abilitato:  sosti-
                             tuzione di comando, funzioni di shell, e subshell
                             invocate con (  comando  )  ereditano  le  inter-
                             cettazione di segnale ERROR.
              extglob Se   impostata,  le  caratteristiche  di  corrispondenza
                      estesa  di  modelli  descritte  in   precedenza,   sotto
                      Espansione di percorso sono abilitate.
              extquote
                      Se impostato, la quotatura $'stringa' e $"stringa"
                       effettuata all'interno delle espansioni di ${parametro}
                      racchiuse tra virgolette.  Quest'opzione  abilitata  per
                      default.
              failglob
                      Se  impostata, i modelli che non generano nomi validi di
                      file durante l'espansione del percorso danno come risul-
                      tato un errore di espansione.
              force_fignore
                      Se  impostata, i suffissi specificati dalla variabile di
                      shell FIGNORE fanno si che delle parole vengano ignorate
                      quando  viene  effettuato  il completamento delle parole
                      anche se le parole ignorate sono i soli  possibili  com-
                      pletamenti.   Si  veda  VARIABILI DI SHELL sopra per una
                      descrizione di FIGNORE.   Quest'opzione   abilitata  per
                      default.
              gnu_errfmt
                      Se  impostata,  i messaggi di errore della shell vengono
                      scritti nel formato GNU standard dei messaggi di errore.
              histappend
                      Se  impostata,  l'elenco  della  cronologia  accodato al
                      file indicato dalla variabile HISTFILE all'uscita  della
                      shell, invece che sostituire il file preesistente.
              histreedit
                      Se impostata, e readline
                       in uso, viene data l'opportunit a un utente di ripetere
                      una sostituzione della cronologia che non ha avuto  suc-
                      cesso.
              histverify
                      Se impostata, e readline
                       in uso, i risultati della sostituzione della cronologia
                      non sono immediatamente passati  all'analizzatore  della
                      shell.   Invece,  la  riga risultante viene caricata nel
                      buffer di editing readline,permettendo  ulteriori  modi-
                      fiche.
              hostcomplete
                      Se impostata, e readline
                       in  uso,  bash tenta di effettuare il completamento del
                      nome di host quando una parola contenente un @  in corso
                      di  completamento  (si veda Completamento in precedenza,
                      sotto READLINE .  Questa  abilitata per default.
              huponexit
                      Se impostata, bash invia SIGHUP a tutti i job all'uscita
                      di una shell di login interattiva.
              interactive_comments
                      Se  impostata,  fa  s  che, se una parola inizia con # ,
                      quella parola e tutti i caratteri  rimanenti  su  quella
                      riga  siano  ignorati  in una shell interattiva (si veda
                      COMMENTI sopra).  Quest'opzione  abilitata per  default.
              lithist Se impostata, e l'opzione cmdhist
                       abilitata,  i  comandi  multiriga  sono  salvati  nella
                      cronologia includendo i newline,  piuttosto  che  usando
                      come separatori il punto e virgola, dove possibile.
              login_shell
                      La  shell  imposta  quest'opzione  se viene avviata come
                      shell di login (si veda INVOCAZIONE sopra).   Il  valore
                      non pu essere cambiato.
              mailwarn
                      Se  impostata,  e  un file sul quale bash sta ricercando
                      della posta ha avuto un accesso  dall'ultima  volta  che
                      stato  controllato, viene visualizzato il messagio ``The
                      mail in mailfile has been read''.
              no_empty_cmd_completion
                      Se impostata, e readline
                       in uso, bash non tenta di cercare il PATH per possibili
                      completamenti  quando  viene tentato il completamento di
                      una riga vuota.
              nocaseglob
                      Se impostata, bash individua i nomi di file  senza  dis-
                      tinguere  le  maiuscole  dalle minuscole quando effettua
                      l'espansione del percorso (si veda Espansione  del  per-
                      corso sopra).
              nocasematch
                      Se impostata, bash confronta modellisenza distinguere le
                      maiuscole dalle minuscole quando ricerca  corrispondenze
                      mentre esegue i comandi condizionali case o [[.
              nullglob
                      Se impostata, bash permette ai modelli che non individu-
                      ano nessun file (si veda Espansione del percorso  sopra)
                      di  espandere  come  una  stringa  nulla,  piuttosto che
                      essere presi letteralmente.
              progcomp
                      Se impostata, i servizi di  completamento  programmabile
                      (si  veda  Completamento  programmabile  sopra)  vengono
                      abilitati.  Quest'opzione  abilitata per default.
              promptvars
                      Se impostata, le stringhe di prompt subiscono espansione
                      di  parametro, sostituzione di comando, espansione arit-
                      metica e rimozione dei segni di quotatura dopo che  sono
                      stati  espansi  come  descritto  in  STRINGHE  DI PROMPT
                      sopra.  Quest'opzione  abilitata per default.
              restricted_shell
                      La shell imposta  quest'opzione  se   stata  avviata  in
                      modalit  ristretta  (si veda SHELL RISTRETTA pi avanti).
                      Il valore non pu  essere  cambiato.   Questo  non  viene
                      reimpostato  quando  i  file  di avvio vengono eseguiti,
                      permettendo ai file di avvio di accertare se  una  shell
                      ristretta o meno.
              shift_verbose
                      Se  impostata,  il  comando  incorporato shift stampa un
                      messaggio di errore quando il numero  di  comandi  shift
                      effettuati eccede il numero dei parametri posizionali.
              sourcepath
                      Se  impostata,  il comando incorporato source (.) usa il
                      valore di PATH per trovare la  directory  contenente  il
                      file  fornito  come argomento.  Quest'opzione  abilitata
                      per default.
              xpg_echo
                      Se  impostata,  il  comando  incorporato  echo   espande
                      sequenze di protezione backslash per default.
       suspend [-f]
              Sospende  l'esecuzione  di questa shell fino a che non riceve un
              segnale SIGCONT.  L'opzione  -f  dice  di  non  preoccuparsi  se
              questa   una  shell  di login; va sospesa comunque.  Lo stato di
              ritorno  0 tranne quando la shell  una  shell  di  login  e  non
              fornito -f, o se il job-control non  abilitato.
       test expr
       [ expr ]
              Ritorna  uno stato di 0  o 1 a seconda del risultato della valu-
              tazione dell'espressione condizionale expr.   Ogni  operatore  e
              operando deve essere un argomento separato.  Le espressioni sono
              composte dagli elementi descritti in precedenza,  sotto  ESPRES-
              SIONI  CONDIZIONALI.  test non accetta opzioni, n accetta, igno-
              randolo, un argomento -- come indicatore di fine delle  opzioni.

              Le espressioni possono essere combinate usando i seguenti opera-
              tori, elencati in ordine decrescente di precedenza.
              ! expr Vero se expr
                      falso.
              ( expr )
                     Ritorna il valore di expr.  Questo pu  essere  usato  per
                     modificare la normale precedenza degli operatori.
              expr1 -a expr2
                     Vero se sia expr1 che expr2 sono vere.
              expr1 -o expr2
                     Vero se o expr1 o expr2
                      vera.

              test  e  [ valutano espressioni condizionali usando una serie di
              regole basate sul numero di argomenti.

              0 argomenti
                     L'espressione  falsa.
              1 argomento
                     L'espressione  vera se e solo se l'argomento non   nullo.
              2 argomenti
                     Se  il  primo argomento  !, l'espressione  vera se e solo
                     se il secondo argomento  nullo.  Se  il  primo  argomento
                     uno  degli operatori condizionali elencati in precedenza,
                     sotto ESPRESSIONI CONDIZIONALI, l'espressione  vera se il
                     test  unario  vero.  Se il primo argomento non  un opera-
                     tore condizionale unario valido, l'espressione  falsa.
              3 argomenti
                     Se il secondo argomento  uno degli operatori binari  con-
                     dizionali  elencati in precedenza, sotto ESPRESSIONI CON-
                     DIZIONALI, il risultato  dell'espressione   il  risultato
                     del test binario che usa gli argomenti primo e terzo come
                     operandi.  Se  il  primo  argomento   !,  il  valore   la
                     negazione  del  test  con  due argomenti costituito dagli
                     argomenti secondo e terzo.  Se il primo argomento   esat-
                     tamente  (  e il terzo argomento esattamente ), il risul-
                     tato  il test, con 1 argomento,  del  secondo  argomento.
                     Altrimenti,  l'espressione  falsa.  Gli operatori -a e -o
                     sono considerati in questo caso operatori binari
              4 argomenti
                     Se il primo argomento   !,  il  risultato   la  negazione
                     dell'espressione   composta   dai   rimanenti  argomenti.
                     Altrimenti, l'espressione  analizzata e valutata  secondo
                     le precedenze usando le regole elencate sopra.
              5 o pi argomenti
                     L'espressione   analizzata  e  valutata secondo le prece-
                     denze usando le regole elencate sopra.

       times  Stampa i tempi spesi come utente e come sistema per la  shell  e
              per i processi eseguiti dalla shell.  Lo stato di ritorno  0.

       trap [-lp] [[arg] sigspec ...]
              Il  comando  arg  dev'essere  letto  e  eseguito quando la shell
              riceve il segnale(i) sigspec.  Se arg
               assente (e c' un singolo sigspec) o -, ogni segnale specificato
              riportato alla sua configurazione originale (il valore che aveva
              al momento dell'ingresso nella shell).  Se arg
               la stringa nulla il segnale specificato da ogni sigspec
               ignorato dalla shell e dai comandi che essa invoca.  Se arg non
              presente e -p
               stato  fornito,  allora i comandi di intercettazione di segnale
              associati a ogni sigspec vengono  visualizzati.   Se  non  viene
              fornito alcun argomento o se
               dato  solo  -p  ,  trap stampa la lista dei comandi associati a
              ogni segnale.  L'opzione -l fa s che la shell stampi  una  lista
              di  nomi  di  segnale  e  i  numeri a loro corrispondenti.  Ogni
              sigspec
               o un nome di segnale definito in <signal.h>,  o  un  numero  di
              segnale.  I nomi di segnale possono essere scritti sia in minus-
              colo che in maiuscolo e  il  prefisso  SIG   opzionale.   Se  un
              sigspec

              EXIT (0) il comando arg
               eseguito all'uscita della shell.  Se un sigspec

              DEBUG,  il comando arg viene eseguito prima di ogni comando sem-
              plice, comando for, comando case, comando select,  ogni  comando
              for aritmetico, e prima di eseguire il primo comando in una fun-
              zione di shell (si veda GRAMMATICA  DELLA  SHELL  sopra).   Fare
              riferimento  alla  descrizione dell'opzione extdebug del comando
              incorporato shopt per dettagli sul suo  effetto  nella  gestione
              del segnale DEBUG.  Se un sigspec

              ERR il comando arg viene eseguito ogni volta che un comando sem-
              plice ha uno stato di uscita diverso da 0,  tenuto  conto  delle
              seguenti  condizioni.   La  gestione  del  segnale ERR non viene
              invocata se il comando in errore fa parte della lista di comandi
              immediatamente  seguente  un comando while o until , se fa parte
              del test in un'istruzione if ,
               se fa parte di una lista && o || , o se il  valore  di  ritorno
              del  comando in esecuzione viene negato da un !.  Queste sono le
              stesse condizioni imposte all'opzione errexit.  Se un sigspec

              RETURN, il comando arg viene eseguito ogni volta  che  una  fun-
              zione di shell o uno script eseguito coi comandi incorporati . o
              source completa l'esecuzione.  I  segnali  ignorati  al  momento
              dell'ingresso  della  shell  non  possono  essere intercettati o
              resettati.  I segnali intercettati non ignorati  sono  riportati
              al loro valore originale in un processo figlio quando esso  cre-
              ato.  Lo stato di ritorno  falso  se  un  sigspec  non   valido;
              altrimenti trap ritorna 0 [vero].

       type [-aftpP] nome [nome ...]
              Senza opzioni, indica come dovr essere interpretato ciascun nome
              se usato come un nome di comando.  Se  usata l'opzione -t,  type
              stampa  una  stringa  che   una  fra  alias,  keyword, function,
              builtin, o file se nome , rispettivamente, un alias, una  parola
              riservata  della  shell, una funzione, un comando incorporato, o
              un file su disco.  Se il nome non  trovato, non  viene  stampato
              nulla,  ed   ritornato  uno  stato  d'uscita di falso.  Se viene
              usata l'opzione -p, type ritorna o il nome del file su disco che
              dovrebbe  essere eseguito se nome fosse specificato come nome di
              comando, o nulla se ``type -t nome'' non avesse ritornato  file.
              L'opzione  -P  forza PATH a ricercare ogni nome, anche se ``type
              -t nome'' non dovesse ritornare  file.   Se  un  comando   nella
              tabella hash, -p e -P stampano il valore nella tabella hash, non
              necessariamente il file che appare per primo in PATH.  Se  viene
              usata  l'opzione  -a,  type  stampa  tutti le posizioni che cor-
              rispondono a un eseguibile chiamato nome.  Questo include  alias
              e funzioni, se e solo se non viene usata anche l'opzione -p.  La
              tabella hash dei comandi  non   consultata  quando  si  usa  -a.
              L'opzione  -f  sopprime la ricerca della funzione di shell, come
              col comando incorporato command.  type ritorna 0 [vero]  se  uno
              qualsiasi  degli  argomenti  viene  trovato,  falso  se  non  ne
              trovato nemmeno uno.

       ulimit [-SHacdefilmnpqrstuvx [limite]]
              Fornisce controllo sulle risorse disponibili per la shell e  per
              i  processi  avviati da essa, sui sistemi che consentono un tale
              controllo.  Le opzioni -H e -S specificano che  viene  impostato
              il  limite  hard  o  limite soft per la data risorsa.  Un limite
              hard non pu essere aumentato una volta impostato; un limite soft
              pu  essere  aumentato fino al valore del limite hard.  Se n -H n
              -S sono specificati, vengono impostati entrambi i limiti, hard e
              soft.   Il valore di limite pu essere un numero nell'unit speci-
              ficata per la risorsa, o uno dei valori speciali  hard,  soft  o
              unlimited.  che stanno rispettivamente per limite hard corrente,
              limite soft corrente e nessun limite.  Se limite
               omesso, viene stampato il valore corrente del limite soft della
              risorsa,  a meno che non venga data l'opzione -H.  Quando speci-
              ficata pi di una risorsa, il nome del limite  e  l'unit  vengono
              stampati  prima  del valore.  Le altre opzioni sono interpretate
              come segue:
              -a     sono riportati tutti i limiti correnti
              -c     la dimensione massima dei file core creati
              -d     la dimensione massima del segmento dati di un processo
              -e     La priorit massima di schedulazione dei processi ("nice")
              -f     la  dimensione massima dei file scritti dalla shell e dai
                     suoi figli
              -i     Il numero massimo di segnali pendenti
              -l     la dimensione massima di memoria che pu essere bloccata
              -m     la dimensione massima della memoria occupata.
              -n     il numero massimo di descrittori di file aperti (la  mag-
                     gior parte dei sistemi non permette che questo valore sia
                     cambiato)
              -p     la dimensione delle pipe in blocchi da 512  byte  (questo
                     non pu essere cambiato)
              -q     Il numero massimo di byte nelle code dei messaggi POSIX
              -r     La priorit massima di schedulazione dei processi in tempo
                     reale
              -s     la dimensione massima dello stack
              -t     il massimo quantitativo di tempo  macchina  utilizzabile,
                     in secondi
              -u     il  numero massimo di processi disponibili per un singolo
                     utente
              -v     Il massimo ammontare di memoria virtuale disponibile  per
                     la shell
              -x     Il numero massimo di file lock

              Se limite
               dato,   esso    il   nuovo  valore  della  risorsa  specificata
              (l'opzione -a
               solo per visualizzazione).  Se nessuna  opzione   data,  allora
              assunta  -f.  I valori sono in multipli di 1024 byte, tranne che
              per -t, che  in secondi, -p, che  in  unit  di  blocchi  da  512
              byte,  e  -n e -u, che sono numeri puri.  Lo stato di ritorno  0
              tranne quando viene incontrata un'opzione  o  un  argomento  non
              valido, o avvenga un errore mentre si imposta un nuovo limite.

       umask [-p] [-S] [modo]
              La maschera di creazione dei file dell'utente  impostata a modo.
              Se modo inizia con una cifra,
               interpretato come numero ottale; altrimenti  interpretato  come
              una  maschera  simbolico  di  modo  simile a quelle accettate da
              chmod(1).  Se modo
               omesso, viene  stampato  il  valore  corrente  della  maschera.
              L'opzione -S fa s che la maschera venga stampata in formato sim-
              bolico; l'output di default  un numero ottale.  Se viene fornita
              l'opzione -p e modo
               omesso,  l'output   in una forma riutilizzabile come input.  Lo
              stato di ritorno  0 se il modo  stato cambiato con successo o se
              nessun argomento modo era stato fornito, e falso altrimenti.

       unalias [-a] [nome ...]
              Rimuove  ciascun  nome  dalla lista degli alias definiti.  Se si
              specifica -a , sono rimosse tutte le definizioni di  alias.   Il
              valore  di  ritorno   0 [vero] tranne quando un nome fornito non
              un alias attualmente definito.

       unset [-fv] [nome ...]
              Per ciascun nome, rimuove la  corrispondente  variabile  o  fun-
              zione.  Se non vengono fornite opzioni, o  specificata l'opzione
              -v , ogni nome designa una variabile di shell.  Le variabili  in
              sola  lettura  non possono essere rimosse.  Se viene specificata
              -f , ogni nome designa una funzione di shell, e  la  definizione
              di  funzione  viene  rimossa.  Ogni variabile o funzione rimossa
              eliminata dall'ambiente passato ai comandi successivi.   Se  una
              qualsiasi fra RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME, GROUPS
              o DIRSTACK
               annullata, perde la sua speciale propriet, anche se viene  suc-
              cessivamente ridefinita.  Lo stato d'uscita  0 [vero] a meno che
              un nome non sia in sola lettura.

       wait [n ...]
              Aspetta ogni processo specificato e ritorna il suo stato di com-
              pletamento.   Ciascun n pu essere un ID di processo o una speci-
              ficazione di job; se  data una specificazione di job, si  aspet-
              tano tutti i processi nella pipeline di quel job.  Se n
               omesso,  si  aspettano  tutti  i  processi  figli correntemente
              attivi, e lo stato di ritorno  0.  Se n specifica un processo  o
              job  non  esistenti,  lo  stato di ritorno  127.  Altrimenti, lo
              stato di ritorno  lo stato d'uscita dell'ultimo processo  o  job
              di cui si  atteso il completamento.

SHELL RISTRETTA

       Se bash
        avviata  col nome rbash, o l'opzione -r viene fornita all'invocazione,
       la shell diventa ristretta.  Una shell ristretta  usata  per  impostare
       un ambiente pi controllato di quello della shell standard.  Si comporta
       identicamente a bash con l'eccezione che quel che segue  o non permesso
       o non effettuato:

       +o      cambiare le directory con cd

       +o      impostare o rimuovere i valori di SHELL, PATH, ENV o BASH_ENV

       +o      specificare nomi di comando contenenti un /

       +o      specificare  un  nome  di file contenente un / come argomento al
              comando incorporato .

       +o      Specificare un nome di file contenente una barra [/] come  argo-
              mento all'opzione -p del comando incorporato hash

       +o      importare  definizioni  di  funzione  dall'ambiente  della shell
              all'avvio

       +o      analizzare  il  valore  di  SHELLOPTS  dall'ambiente  di   shell
              all'avvio

       +o      ridirigere  l'output  usando gli operatori di ridirezione >, >|,
              <>, >&, &>, e >>

       +o      usare il comando incorporato exec per sostituire la shell con un
              altro comando

       +o      aggiungere  o  eliminare comandi incorporati con le opzioni -f e
              -d del comando incorporato enable

       +o      Usare il comando incorporato enable per abilitare comandi incor-
              porati della shell che sono disabilitati

       +o      specificare l'opzione -p al comando incorporato command

       +o      disattivare la modalit ristretta con set +r o set +o restricted.

       Queste restrizioni sono imposte  dopo  aver  letto  eventuali  file  di
       avvio.

       Quando viene eseguito un comando che viene riconosciuto come uno script
       di shell (si veda ESECUZIONE DI UN COMANDO sopra), rbash  rimuove  ogni
       restrizione  nella  shell  creata dalla shell genitrice per eseguire lo
       script.

VEDERE ANCHE

       Bash Reference Manual, Brian Fox and Chet Ramey
       The Gnu Readline Library, Brian Fox and Chet Ramey
       The Gnu History Library, Brian Fox and Chet Ramey
       Portable Operating System Interface (POSIX) Part 2:  Shell  and  Utili-
       ties, IEEE
       sh(1), ksh(1), csh(1)
       emacs(1), vi(1)
       readline(3)

FILE

       /bin/bash
              L'eseguibile bash
       /etc/profile
              Il file di inizializzazione generale di sistema, eseguito per le
              shell di login
       ~/.bash_profile
              Il  file di inizializzazione personale, eseguito per le shell di
              login
       ~/.bashrc
              Il file di inizializzazione individuale per ogni shell  interat-
              tiva
       ~/.bash_logout
              Il  file  di  pulizia della shell di login individuale, eseguito
              quando una shell di login termina
       ~/.inputrc
              Il file di inizializzazione individuale per readline

AUTORI

       Brian Fox, Free Software Foundation
       bfox [AT] gnu.org

       Chet Ramey, Case Western Reserve University
       chet [AT] po.edu

NOTIFICA DEI BACHI

       Se trovate un baco [bug]  in  bash,  dovreste  segnalarlo.   Ma  prima,
       dovreste assicurarvi che sia veramente un baco, e che appaia nella ver-
       sione pi recente di bash .  L'ultima versione   sempre  disponibile  da
       ftp://ftp.gnu.org/pub/bash/.

       Una volta determinato che avete individuato realmente un baco, usate il
       comando bashbug per inviare una notifica del baco.  Se avete  una  cor-
       rezione,  siete  invitati  a inviare anche quella!  Suggerimenti e rap-
       porti su bachi 'filosofici' possono essere inviati a bug-bash [AT] gnu.org o
       inviati al newsgroup su Usenet gnu.bash.bug.

       TUTTI i rapporti su bachi dovranno includere:

       Il numero di versione di bash
       L'hardware e il sistema operativo
       Il compilatore usato per compilare
       Una descrizione del comportamento bacato
       Un breve script o `ricetta' che produca il baco

       bashbug  inserisce  le  prime  tre voci automaticamente nel modello che
       fornisce per compilare una notifica di baco.

       Commenti e notifiche su bachi  riguardanti  questa  pagina  di  manuale
       dovranno essere indirizzati a chet [AT] po.edu.

BACHI

        troppo grande e troppo lenta.

       Vi  sono  alcune sottili differenze tra bash e le versioni tradizionali
       di sh, soprattutto per via delle specifiche POSIX

       In alcuni casi gli alias possono essere causa di confusione.

       Comandi   incorporati    della    shell    e    funzioni    non    sono
       sospendibili/riavviabili.

       Comandi  composti  e sequenze di comandi nella forma di `a ; b ; c' non
       sono trattati in modo completamente corretto quando viene richiesta  la
       sospensione di un processo.  Quando un processo viene sospeso, la shell
       esegue immediatamente il comando che lo  segue  immediatamente.   Basta
       mettere  una sequenza di comandi fra parentesi per forzarla in una sub-
       shell, che pu essere sospesa come se fosse un'unica entit.

       I comandi all'interno di una sostituzione di comando  $(...)  non  sono
       analizzati  finch non  stata tentata la sostituzione.  Questo posticipa
       la scoperta di errori a qualche tempo dopo che  stato dato il  comando.
       Per   esempio,  parentesi  aperte  e  non  chiuse  e  viceversa,  anche
       all'interno di commenti di shell, producono un messaggio di  errore  gi
       mentre il costrutto  in fase di lettura.

       Le variabili di array non possono essere esportate (per il momento).



GNU Bash-3.2                   2006 September 28                       BASH(1)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.