read

BASH(1)                      General Commands Manual                     BASH(1)



NOME
       bash - GNU Bourne-Again SHell

SINTASSI
       bash [opzioni] [stringa_di_comando | file]

COPYRIGHT
       Bash is Copyright (C) 1989-2020 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 incorpora
       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 in modo
       predefinito.

OPZIONI
       Tutte le opzioni monocarattere della shell documentate nella descrizione
       del comando incorporato set, compreso  -o, possono essere usate come
       opzioni quando la  shell è invocata. In aggiunta, quando è invocata, bash
       interpreta le seguenti opzioni:

       -c        Se è presente l'opzione -c, i comandi sono letti dal primo
                 argomento non di opzione stringa_di_comando.Se vi sono
                 argomenti dopo la stringa_di_comando, essi sono assegnati ai
                 parametri posizionali, partendo da $0, e i rimanenti argomenti
                 vengono assegnati ai parametri posizionali.  L'assegnamento a
                 $0 imposta il nome della shell, che è usato nei messaggi di
                 avvertimento e di errore.
       -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 o
                 si legge l'input tramite una pipe.
       -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
                 localizzazione 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 formato
                 riutilizzabile come input.
       --        Un -- segna la fine delle opzioni e disabilita l'ulteriore
                 elaborazione di opzioni. Gli argomenti dopo il -- sono trattati
                 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).
       --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 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 impostazione
              predefinita 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
              impostazione predefinita se la shell è invocata come sh.

       --posix
              Cambia il comportamento di bash dove le operazioni predefinite
              differiscono dallo standard POSIX, in modo da corrispondere allo
              standard (modalità posix).   Si veda più avanti VEDERE ANCHE dove
              viene citato un documento che spiega nel dettaglio come la
              modalità posix influenza il comportamento di bash.

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

       --rpm-requires
              Produce the list of files that are required for the shell script
              to run.  This implies '-n' and is subject to the same limitations
              as compile time error checking checking; Command substitutions,
              Conditional expressions and eval builtin are not parsed so some
              dependencies may be missed.

       --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 è quella 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 (a meno che non venga specificato -s) 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 inizializzazione 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
       ESPANSIONE.

       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 interattiva esce, o una shell non interattiva
       esegue il comando incorporato exit, bash legge ed esegue comandi dai file
       ~/.bash_logout e  /etc/bash.bash_logout, se esistono.

       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 valore 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
       inizializzazione 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 col suo standard
       input connesso a una connessione di rete, come quando è eseguita dal
       demone di shell remota, solitamente rshd, o dal demone di shell sicura
       sshd. Se bash stabilisce che è eseguita in questo modo, 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 né rshd  sshd invocano la shell con
       queste opzioni o permettono 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, le variabili SHELLOPTS, BASHOPTS, CDPATH
       e GLOBIGNORE, se esistono nell'ambiente, vengono ignorate, e l'id
       effettivo dell'utente è impostato 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 trattini
              di sottolineatura, e comincia con un carattere alfabetico o un
              trattino di sottolineatura. Definita anche un identificatore.
       metacarattere
              Un carattere che, quando non quotato, separa le parole. Uno dei
              seguenti:
              |  & ; ( ) < > space tab newline
       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  (si veda GRAMMATICA DELLA
       SHELL più avanti) , la terza parola di un comando case o select ( è
       valida solo in), o la terza parola di un comando for (sono valide solo in
       e do):

       ! case  coproc  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 variabile
       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 da uno degli
       operatori di controllo | o |&. 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). Se viene usato |&, lo standard error di comando, in aggiunta al
       suo standard output, è connesso allo standard input di comando2 tramite
       la pipe; è una notazione breve per 2>&1 |. Questa ridirezione implicita
       dello standard error allo standard output è effettuata dopo qualsiasi
       ridirezione specificata dal comando.

       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 ! precede
       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. Quando la shell è in modalità posix, non
       riconosce time come una parola riservata se il token successivo inizia
       con un `-'. 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 TIMEFORMAT sotto Variabili di shell
       più avanti.

       Quando la shell è in modalità posix, time può essere seguito da un
       newline.  In questo caso la shell visualizza il tempo totale dell'utente
       e del sistema utilizzato dalla shell e dai suoi figli. Si può usare la
       variabile TIMEFORMAT per specificare il formato dell'informazione sul
       tempo.

       Ogni comando in una pipeline è eseguito come un processo separato (cioè
       in una subshell). Si veda AMBIENTE DI ESECUZIONE DEI COMANDI per la
       descrizione di un ambiente di subshell.  Se è abilitata l'opzione
       lastpipe usando il comando incorporato shopt (si veda più avanti la
       descrizione di shopt), l'ultimo elemento di una pipeline può essere
       eseguito dal processo di shell.

   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.  Questi sono detti comandi
       asincroni.  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.

       Le liste AND e OR sono sequenze di una o più pipeline separate,
       rispettivamente, dagli operatori di controllo && e ||. Le liste AND e OR
       vengono eseguite con associatività a sinistra. Una lista AND ha la forma

              comando1 && comando2

       comando2 è eseguito se, e solo se, comando1 restituisce uno stato
       d'uscita di zero (successo).

       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.  Nella maggior parte dei casi una
       lista in una descrizione di comando può essere separata dal resto del
       comando da uno o più newline, e può essere seguita da un newline al posto
       di un punto e virgola.

       (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
              separate da lista con uno spazio o un altro metacarattere di
              shell.

       ((espressione))
              L'espressione è valutata in accordo con le regole descritte più
              avanti sotto VALUTAZIONE ARITMETICA. Se il valore dell'espressione
              è 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 composte
              dalle primitive descritte più avanti sotto ESPRESSIONI
              CONDIZIONALI. La suddivisione in parole e l'espansione del nome di
              percorso non sono effettuate sulle parole fra la [[ e ]];
              espansione della tilde, espansione di parametro e di variabile,
              espansione aritmetica, sostituzione di comando, sostituzione di
              processo, e rimozione degli apici vengono eseguite. Gli operatori
              condizionali come -f devono essere senza apici per essere
              riconosciuti come primitive.

              Quando vengono usati con [[, gli operatori < e > vengono ordinati
              lessicograficamente usando la localizzazione corrente.

              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, come se fosse abilitata l'opzione di shell extglob.
              L'operatore = è eqiovalente a ==.  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 POSIX
              e confrontata come tale (usando le interfacce POSIX  regcomp e
              regexec usualmente descritte 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 maiuscole dalle minuscole nei caratteri alfabetici.
              Qualsiasi parte del modello può essere quotato per forzare la
              porzione quotata a essere individuata come una stringa. Le
              espressioni fra parentesi nelle espressioni regolari devono essere
              trattate con attenzione, poiché i normali caratteri di quotatura
              perdono il loro significato uqando sono fra parentesi graffe.  Se
              il modello è memorizzato in una variabile di shell, quotare
              l'espansione della variabile forza l'intero modello a essere
              individuato come stringa.

              The pattern will match if it matches any part of the string.
              Anchor the pattern using the ^ and $ regular expression operators
              to force it to match the entire string.  The array variable
              BASH_REMATCH records which parts of the string matched the
              pattern.  The element of BASH_REMATCH with index 0 contains the
              portion of the string matching the entire regular expression.
              Substrings matched by parenthesized subexpressions within the
              regular expression are saved in the remaining BASH_REMATCH
              indices. The element of BASH_REMATCH with index n is the portion
              of the string matching the nth parenthesized subexpression.

              Le espressioni possono essere combinate usando i seguenti
              operatori, 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 (( espr1 ; espr2 ; espr3 )) ; do lista ; done
              Prima viene valutata l'espressione aritmetica espr1 in accordo con
              le regole descritte più avanti sotto VALUTAZIONE ARITMETICA. Viene
              quindi valutata ripetutamente l'espressione aritmetica espr2
              finché non assume il valore zero. Ogni volta che espr2 è diverso
              da zero, lista viene eseguita e l'espressione aritmetica espr3
              viene valutata. Se qualche espressione è omessa, si suppone 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 standard
              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
              corrispondente 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 regole di
              confronto descritte più avanti in Espansione di percorso.   La
              parola è espansa usando espansione della tilde, espansione di
              parametro e di variabile, espansione 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, espansione
              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.  Se viene usato
              l'operatore ;;, dopo il primo confronto riuscito non ne viene
              tentato nessun altro. Usando ;& al posto di ;; l'esecuzione
              continua con la lista associata alla successiva serie di modelli.
              Se si usa ;;& al posto di ;; la shell analizza il successivo
              modello di lista nell'istruzione, se ce n'è qualcuno, ed esegue
              qualsiasi lista associata su una corrispondenza andata a buon
              fine, continuando l'esecuzione dell'istruzione case come se il
              modello di lista non  abbia trovato corrispondenze . Lo stato
              d'uscita è zero se nessun modello corrisponde. Altrimenti, è 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, è eseguita, 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-1; do lista-2; done
       until lista-1; do lista-2; done
              Il comando while esegue ripetutamente la lista lista-2 finché
              l'ultimo comando nella lista lista-1 ritorna uno stato di uscita
              di zero. Il comando until è identico al comando while, con la sola
              differenza che il risultato del test è negato: lista-2 è eseguita
              finché l'ultimo comando in lista-1 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 in lista-2, o zero se
              non ne è stato eseguito alcuno.

   Coprocessi
       Un coprocesso è un comando di shell preceduto dalla parola riservata
       coproc. Un coprocesso viene eseguito in modo asincrono in una subshell,
       come se il comando fosse stato terminato con l'operatore di controllo &,
       con una pipe a due vie stabilita fra la shell in esecuzione e il
       coprocesso.

       Il formato per un coprocesso è:

              coproc [NOME] comando [ridirezioni]

       Questo crea un coprocesso chiamato NOME. Se NOME non viene fornito,
       quello predefinito è COPROC. NOME non dev'essere fornito se comando è un
       comando semplice (si veda sopra); altrimenti viene interpretato come la
       prima parola di un comando semplice. Quando il coprocesso viene eseguito,
       la shell crea una variabile array (si veda Array più avanti) chiamata
       NOME nel contesto della shell in esecuzione. Lo standard output di
       comando è connesso tramite una pipe a un descrittore di file nella shell
       in esecuzione, e il descrittore di file è assegnato a NOME[0]. Lo
       standard input of comando è connesso tramite una pipe a un descrittore di
       file nella shell in esecuzione, e tale descrittore è assegnato a NOME[1].
       Questa pipe è costituita prima che qualsiasi ridirezione venga
       specificata dal comando (si veda RIDIREZIONE più avanti). I descrittori
       di file possono essere utilizzati come argomenti per i comandi di shell e
       ridirezioni usando comuni espansioni di parola.  Oltre a quelli creati
       per eseguire comandi e sostituzioni di processo, i descrittori di file
       non sono disponibili nelle subshell.  L'ID del processo della shell
       figlia creata per eseguire il coprocesso è disponibile come valore della
       variabile NOME_PID. Il comando incorporato wait può essere usato per
       attendere che il coprocesso sia terminato.

       Poiché il coprocesso è creato come comando asincrono, il comando coproc
       restituisce sempre successo.  Lo stato di ritorno di un coprocesso è lo
       stato di ritorno di comando.

   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:

       fname () comando-composto [ridirezione]
       function fname [()] comando-composto [ridirezione]
              This defines a function named fname.  The reserved word function
              is optional.  If the function reserved word is supplied, the
              parentheses are optional.  The body of the function is the
              compound command compound-command (see Compound Commands above).
              That command is usually a list of commands between { and }, but
              may be any command listed under Compound Commands above, with one
              exception: If the function reserved word is used, but the
              parentheses are not supplied, the braces are required.
              compound-command is executed whenever fname is specified as the
              name of a simple command.  When in posix mode, fname must be a
              valid shell name and may not be the name of one of the POSIX
              special builtins.  In default mode, a function name can be any
              unquoted shell word that does not contain $.  Any redirections
              (see REDIRECTION below) specified when a function is defined are
              performed when the function is executed.  The exit status of a
              function definition is zero unless a syntax error occurs or a
              readonly function with the same name already exists.  When
              executed, the exit status of a function is the exit status of the
              last command executed in the body.  (See FUNCTIONS below.)

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 DELLA 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 in modo predefinito 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
       significato speciale per la shell e deve essere quotato se esso deve
       rappresentare 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.

       Una barra inversa (\) non quotata è il carattere di protezione. Esso
       attribuisce il valore letterale al successivo carattere, con l'eccezione
       di <newline>. Se vi è una coppia \<newline>, e la barra inversa non è
       quotata, 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 una barra inversa.

       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, !.   Quando la shell è in
       modaltà posix, ! non ha un significato speciale quando è tra virgolette,
       anche quando l'espansione della cronologia è abilitata.  I caratteri $ e
       ` conservano il loro significato speciale anche tra virgolette. La barra
       inversa 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 una
       barra inversa. Se abilitata, l'espansione della cronologia viene
       effettuata a meno che un !  tra virgolette non venga protetto da una
       barra inversa. La barra inversa che precede il ! non viene rimossa.

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

       Parole della forma $'stringaP' sono trattate in modo speciale. La parola
       espande in stringa, coi caratteri protetti da una barra inversa
       sostituiti come specificato dallo standard ANSI C.  Le sequenze di
       protezione tramite la barra inversa, se presenti, sono decodificate come
       segue:
              \a     avviso (segnale acustico)
              \b     backspace
              \e
              \E     un carattere di escape
              \f     salto pagina
              \n     codice di fine riga (newline)
              \r     ritorno carrello
              \t     tabulazione orizzontale
              \v     tabulazione verticale
              \\     barra inversa
              \'     apostrofo
              \"     virgolette
              \?     punto interrogativo
              \nnn   il carattere a otto bit il cui valore è il valore ottale
                     nnn (da una a tre cifre ottali)
              \xHH   il carattere a otto bit il cui valore è il valore
                     esadecimale HH (una o due cifre esadecimali)
              \uHHHH il carattere Unicode (ISO/IEC 10646) il cui valore è il
                     valore esadecimale HHHH (da una a quattro cifre
                     esadecimali)
              \UHHHHHHHH
                     il carattere Unicode (ISO/IEC 10646) il cui valore è il
                     valore esadecimale HHHHHHHH (da una a otto cifre
                     esadecimali)
              \cx    un carattere control-x

       Il risultato espanso è racchiuso fra apostrofi come se il segno del
       dollaro non fosse presente.

       A double-quoted string preceded by a dollar sign ($"string")  will cause
       the string to be translated according to the current locale.  The gettext
       infrastructure performs the message catalog lookup and translation, using
       the LC_MESSAGES and TEXTDOMAIN shell variables.  If the current locale is
       C or POSIX, or if there are no translations available, the dollar sign is
       ignored.  If the string is translated and replaced, the replacement is
       double-quoted.

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 DELLA 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
       valorisono 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 variabile
       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
       (comandi di dichiarazione).  Quando è in modalità posix, questi comandi
       incorporati possono apparire in un comando dopo una o più istanze del
       comando incorporato comando e mantengono queste proprietà dell'istruzione
       di assegnamento.

       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. Questo comprende argomenti a comandi incorportati come
       declare che accettano istruzioni di assegnamento (comandi di
       dichiarazione). Quando += è applicato a una variabile per la quale
       l'attributo 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
       variabile non è rimosso (com'è quando si usa =), e nuovi valori sono
       aggiunti alla fine dell'array iniziando dal massimo indice di array
       aumentato di uno (per array indicizzati) o aggiunti come coppie
       supplementari di valore-chiave in un array associativo. Quando applicata
       a una variabile valutata come stringa, valore è espanso e accodato al
       valore della variabile.

       A una variabile può essere assegnato l'attributo nameref con l'opzione -n
       dei comandi incorporati declare o local (si veda più avanti la
       descrizione di declare e local) per creare un nameref, o un riferimento a
       un'altra variabile.  Questo permette di manipolare le variabili
       indirettamente.  Ogni volta che la variabile nameref è referenziata o ha
       avuto un assegnamento, l'operazione è eseguita effettivamente sulla
       variabile specificata dal valore della variabile nameref. Un nameref è
       usato comunemente all'interno di funzioni di shell per far riferimento a
       una variabile il cui nome è passato come argomento alla funzione. Per
       esempio, se un nome di variabile è passato alla funzione di shell come il
       suo primo argomento, eseguendo
              declare -n ref=$1
       all'interno della funzione crea una variabile nameref ref il cui valore è
       il nome della variabile passato al primo argomento. Riferimenti e
       assegnamenti a ref sono trattati come riferimenti e assegnamenti  alla
       variabile il cui nome è stato passato come $1. Se la variabile di
       controllo in un ciclo for ha l'attributo nameref, la lista di parole può
       essere una lista di variabili di shell, e verrà costituito un riferimento
       nome per ogni parola della lista, a turno, quando viene eseguito il
       ciclo.  Alle variabili array non è possibile dare l'attributo -n.
       Comunque, le variabili nameref possono far riferimento a variabili array
       e a variabili array indicizzate. I nameref possono essere annullati
       usando l'opzione -n del comando incorporato unset.  Altrimenti, se unset
       viene eseguito col nome di una variabile nameref come argomento, la
       variabile a cui fa riferimento la variabile nameref verrà annullata.

   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 argomenti della shell quando questa è invocata, e possono
       essere riassegnati usando il comando incorporato set. I parametri
       posizionali non possono essere assegnati con istruzioni di assegnamento.
       I parametri posizionali sono temporaneamente sostituiti quando è eseguita
       una funzione 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
       ESPANSIONE 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 non è tra virgolette, ogni parametro posizionale si
              espande in una parola separata. In contesti in cui è effettuata,
              queste parole sono soggette a successiva suddivisione in parole ed
              espansione di percorso.  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 speciale IFS. Cioè, "$*" è equivalente a
              "$1c$2c...", dove c è il primo carattere del valore della
              variabile IFS. Se IFS viene annullata, 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.  In
              contesti in cui è effettuata la suddiviisone in parole, questo
              espande ogni parametro posizionale in una parola separata; se non
              è no è tra virgolette, queste parole sono soggette a suddivisione
              in parole  In contesti in cui non è effettuata la suddivisione in
              parole. questo si espande una parola singola con ogni parametro
              posizionale separato da spazio.  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 espandono come stringa nulla
              (cioè, sono rimossi).
       #      Si espande nel numero di parametri posizionali espresso come
              numero decimale.
       ?      Si espande nello stato di uscita 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 impostati
              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 job più recentemente messo in
              background, se eseguito come comando asincrono o usando il comando
              incorporato  bg (si veda JOB CONTROL  più avanti).
       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.

   Variabili di shell
       Le seguenti variabili sono impostate dalla shell:

       _      All'avvio della shell, impostato al nome di percorso usato per
              invocare la shell o lo script di shell che è eseguito come passato
              nell'ambiente o nella lista di argomenti. Successivamente, si
              espande nell'ultimo argomento del precedente comando semplice
              eseguito inprimo piano, 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 contiene il nome del file del messaggio
              attualmente in esame.
       BASH   Si espande al nome completo usato per chiamare questa istanza di
              bash.
       BASHOPTS
              Una lista di opzioni di shell abilitate separate da un due punti.
              Ogni parola della lista è un argomento valido per l'opzione -s del
              comando incorporato shopt (si veda COMANDI INCORPORATI DELLA SHELL
              più avanti). Le opzioni che appaiono in BASHOPTS sono quelle
              contrassegnate come on da shopt. Se questa variabile è
              nell'ambiente quando bash viene avviato, ogni opzione di shell
              nella lista sarà abilitata prima della lettura di qualsiasi file
              di avvio. Questa variabile è di sola lettura.
       BASHPID
              Espande all'ID del processo dell'attuale bash. In determinate
              circostanze, ciò differisce da $$, come nel caso di subshell che
              non richiedono che bash sia reinizializzato.  Assegnamenti a
              BASHPID non hanno alcun effetto.  Se BASHPID  viene annullata,
              perde le sue proprietà speciali, anche se è poi reimpostata.
       BASH_ALIASES
              Una variabile array associativa i cui elementi corrispondono alla
              lista interna di alias come conservati dal comando incorporato
              alias. Gli elementi aggiunti a questo array appaiono nella lista
              degli alias; comunque, togliendo elementi all'array attualmente
              gli alias non vengono rimossi dalla lista. Se BASH_ALIASES  viene
              annullata, perde le sue proprietà speciali, anche se è poi
              reimpostata.
       BASH_ARGC
              Una variabile 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 (funzione
              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).  Impostare extdebug dopo che la shell  ha iniziato a
              eseguire uno script, o referenziare questa variabile quando
              extdebug  non è impostato,  può dar luogo a valori incongruenti.
       BASH_ARGV
              Una variabile 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
              subroutine 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).   Impostare extdebug
              dopo che la shell  ha iniziato a eseguire uno script, o
              referenziare questa variabile quando extdebug  non è impostato,
              può dar luogo a valori incongruenti.
       BASH_ARGV0
              When referenced, this variable expands to the name of the shell or
              shell script (identical to $0; see the description of special
              parameter 0 above).  Assignment to BASH_ARGV0 causes the value
              assigned to also be assigned to $0.  If BASH_ARGV0 is unset, it
              loses its special properties, even if it is subsequently reset.
       BASH_CMDS
              Un variabile array associativa i cui elementi corrispondono alla
              tabella hash interna di comandi come memorizzati dal comando
              incorporato hash. Gli elementi aggiunti a questo array appaiono
              nella tabella hash; comunque, togliendo elementi all'array
              attualmente i nomi dei comandi non saranno rimossi dalla tabella
              hash.  Se BASH_CMDS non è impostata, perde le sue proprietà
              speciali, anche se è successivamente annullata.
       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. Se
              BASH_COMMAND  viene annullata, perde le sue proprietà speciali,
              anche se è poi reimpostata.
       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 dove ogni elemento corrispondente di FUNCNAME è stato
              chiamato. ${BASH_LINENO[$i]} è il numero di riga nel file di
              origine (${BASH_SOURCE[$i+1]}) dove ${FUNCNAME[$i]} è stato
              chiamato (o ${BASH_LINENO[$i-1]} se referenziato all'interno di
              un'altra funzione di shell). Usare LINENO per ottenere il numero
              di riga corrente.
       BASH_LOADABLES_PATH
              Un elenco di directory, separate da due punti, nelle quali la
              shell cerca i comandi incorporato caricabili dinamicamente
              specificati dal comando enable.
       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 sott-espressione fra parentesi.
       BASH_SOURCE
              Una variabile array i cui elementi sono i nomi dei file dove sono
              definiti i nomi delle corrispondenti funzioni di shell nella
              variabile FUNCNAME. La funzione di shell ${FUNCNAME[$i]} è
              definita nel file ${BASH_SOURCE[$i]} ed è chiamata da
              ${BASH_SOURCE[$i+1]}.
       BASH_SUBSHELL
              Incrementato di uno al'interno di ciascuna subshell o ambiente di
              subshell quando la shell inizia a essere eseguita in
              quell'ambiente.  Il valore iniziale è 0. Se BASH_SUBSHELL  viene
              annullata, perde le sue proprietà speciali, anche se è poi
              reimpostata.
       BASH_VERSINFO
              Una variabile array in sola lettura i cui elementi danno
              informazioni 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
              programmabile (si veda Completamento programmabile più avanti).
       COMP_KEY
              Il tasto (o il tasto finale di una sequenza) usato per invocare la
              funzione di completamento corrente.
       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 è disponibile solo nelle
              funzioni di shell e comandi esterni invocati dai servizi di
              completamento programmabile (si veda Completamento programmabile
              più avanti).
       COMP_TYPE
              Impostata a un valore intero corrispondente al tipo di
              completamento tentato che ha causato la chiamata di una funzione
              di completamento: TAB, per il completamento normale, ?, per
              l'elenco dei completamenti dopo tabulazioni successive, !, per
              l'elenco delle alternative di completamento di una parte di
              parola, @, per elencare i completamenti se la parola non ha subito
              modifiche, o %, per il menù del completamento. 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_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à
              speciali, anche se è poi reimpostata.
       COMP_WORDS
              Una variabile array (si veda Array più avanti) che è composta
              dalle singole parole nella riga di comando corrente. La riga è
              divisa in parole come readline la dividerebbe usando
              COMP_WORDBREAKS come descritto precedentemente. Questa variabile è
              disponibile solo nelle funzioni di shell e comandi esterni
              invocati dai servizi di completamento programmabile (si veda
              Completamento programmabile più avanti).
       COPROC Una variabile array (si veda Array più avanti) creata per
              contenere i descrittori di file di uscita e di entrata di un
              coprocesso senza nome (si veda Coprocessi 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 directory 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 corrente. Se DIRSTACK viene
              annullata, perde le sue proprietà speciali, anche se è poi
              reimpostata.
       EPOCHREALTIME
              Ogni volta che questo parametro è referenziato, espande al numero
              di secondi a partire dall'epoca Unix (si veda time(3)) come valore
              in virgola mobile con grado di frazionamento di microsecondi.  Gli
              assegnamenti a EPOCHREALTIME vengono ignorati.  Se EPOCHREALTIME
              viene annullata, perde le sue proprietà speciali, anche se è poi
              reimpostata.
       EPOCHSECONDS
              Ogni volta che questo parametro è referenziato, espande a un
              numero di secondi trascorsi dall'epoca Unix (si veda time(3)).
              Assegnamenti a EPOCHSECONDS vengono ignorati.  Se EPOCHSECONDS è
              annullata, perde le sue proprietà speciali, anche se è poi
              reimpostata.
       EUID   Espande all'ID-utente effettivo dell'utente corrente,
              inizializzata 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
              attualmente in esecuzione. L'elemento più in basso di tutti
              (quello con l'indice più alto) è "main".  Questa variabile esiste
              solo quando è in esecuzione una funzione di shell. Assegnamenti a
              FUNCNAME non hanno alcun effetto. Se FUNCNAME viene annullata,
              perde le sue proprietà speciali, anche se è poi reimpostata.

              Questa variabile può essere usata con BASH_LINENO e BASH_SOURCE.
              Ogni elemento di FUNCNAME ha elementi corrispondenti in
              BASH_LINENO e BASH_SOURCE per descrivere lo stack delle chiamate.
              Per esempio, ${FUNCNAME[$i]} è stato chiamato dal file
              ${BASH_SOURCE[$i+1]} al numero di riga ${BASH_LINENO[$i]}. Il
              comando incorporato caller visualizza lo stack delle chiamate
              corrente usando questa informazione.
       GROUPS Una variabile array contenente l'elenco dei gruppi dei quali è
              membro l'utente corrente. Assegnamenti a GROUPS non hanno alcun
              effetto. Se GROUPS viene annullata, perde le sue proprietà
              speciali, anche se è poi reimpostata.
       HISTCMD
              Il numero di cronologia, o indice nella lista della cronologia,
              del comando corrente. Gi assegnamenti a HISTCMD vengono ignorati.
              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
              predefinito è 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 reimpostata.
       MACHTYPE
              Automaticamente impostata a una stringa che descrive completamente
              il tipo di sistema sul quale bash è in esecuzione, nel formato
              standard GNU cpu-company-system. Il valore predefinito è
              dipendente dal sistema.
       MAPFILE
              Una variabile array (si veda Array più avanti) creata per
              contenere il testo letto dal comando incorporato mapfile quando
              non viene fornito un nome di variabile.
       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 predefinito è
              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 Each time this parameter is referenced, it expands to a random
              integer between 0 and 32767.  Assigning a value to RANDOM
              initializes (seeds) the sequence of random numbers.  If RANDOM is
              unset, it loses its special properties, even if it is subsequently
              reset.
       READLINE_LINE
              Il contenuto del buffer di riga readline per l'uso con "bind -x"
              (si veda COMANDI INCORPORATI DELLA SHELL più avanti).
       READLINE_MARK
              La posizione della marcatura (punto di inserzione) nel buffer di
              riga readline per l'uso con "bind -x" (si veda COMANDI INCORPORATI
              DELLA SHELL più avanti). I caratteri tra il punto d'inserzione e
              la marcatura vine chspesso chiamata regione.
       READLINE_POINT
              La posizione del punto di inserzione nel buffer di riga readline
              per l'uso con "bind -x" (si veda COMANDI INCORPORATI DELLA SHELL
              più avanti).
       REPLY  Impostata alla riga di input letta dal comando incorporato read
              quando nessun argomento è specificato.
       SECONDS
              Each time this parameter is referenced, the number of seconds
              since shell invocation is returned.  If a value is assigned to
              SECONDS, the value returned upon subsequent references is the
              number of seconds since the assignment plus the value assigned.
              The number of seconds at shell invocation and the current time is
              always determined by querying the system clock.  If SECONDS is
              unset, it loses its special properties, even if it is subsequently
              reset.
       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 DELLA SHELL
              più avanti). Le opzioni che appaiono in SHELLOPTS sono quelle
              indicate 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.
       SRANDOM
              This variable expands to a 32-bit pseudo-random number each time
              it is referenced. The random number generator is not linear on
              systems that support /dev/urandom or arc4random, so each returned
              number has no relationship to the numbers preceding it.  The
              random number generator cannot be seeded, so assignments to this
              variable have no effect.  If SRANDOM is unset, it loses its
              special properties, even if it is subsequently reset.
       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 predefinito a una variabile; questi casi sono elencati
       più avanti.

       BASH_COMPAT
              The value is used to set the shell's compatibility level.  See
              SHELL COMPATIBILITY MODE below for a description of the various
              compatibility levels and their effects.  The value may be a
              decimal number (e.g., 4.2) or an integer (e.g., 42)  corresponding
              to the desired compatibility level.  If BASH_COMPAT is unset or
              set to the empty string, the compatibility level is set to the
              default for the current version.  If BASH_COMPAT is set to a value
              that is not one of the valid compatibility levels, the shell
              prints an error message and sets the compatibility level to the
              default for the current version.  The valid values correspond to
              the compatibility levels described below under
              BSHELLCOMPATIBILITYMODE.  For example, 4.2 and 42 are valid values
              that correspond to the compat42 shopt option and set the
              compatibility level to 42.  The current version is also a valid
              value.
       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 risultante.
       BASH_XTRACEFD
              Se impostata a un valore intero corrispondente a un descrittore di
              file valido, bash scriverà l'output della traccia generata quando
              set -x è abilitato a quel descrittore di file. Il descrittore di
              file viene chiuso quando BASH_XTRACEFD non è impostata o le viene
              assegnato un nuovo valore. Annullando BASH_XTRACEFD o assegnandole
              una stringa vuota l'output della traccia verrà inviato allo
              standard error. Da notare che impostando BASH_XTRACEFD a 2 (il
              descrittore di file dello standard error) e, successivamente,
              azzerandola il risultato sarà la chiusura dello standard error.
       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".
       CHILD_MAX
              Imposta il numero di valori dello stato di uscita delle shell
              figlie da tenere in memoria.  Bash non permette che questo valore
              scenda al di sotto di un minimo imposto da POSIX, e c'è un valore
              massimo (attualmente 8192) che non può essere superato.  Il valore
              minimo è dipendente dal sistema.
       COLUMNS
              Usato dal comando composto select per determinare il numero di
              colonne del terminale nella stampa delle liste di selezione.
              Automaticamente impostata se l'opzione  checkwinsize è abilitata o
              è in una shell interattiva al ricevimento di un segnale SIGWINCH.
       COMPREPLY
              Una variabile array dalla quale bash legge i possibili
              completamenti generati da una funzione di shell invocata dal
              servizio di completamento programmabile (si veda Completamento
              programmabile più avanti). Ogni elemento di array contiene un
              completamento possibile.
       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.
       ENV    Expanded and executed similarly to BASH_ENV (see INVOCATION above)
              when an interactive shell is invoked in posix mode.
       EXECIGNORE
              A colon-separated list of shell patterns (see Pattern Matching)
              defining the list of filenames to be ignored by command search
              using PATH.  Files whose full pathnames match one of these
              patterns are not considered executable files for the purposes of
              completion and command execution via PATH lookup.  This does not
              affect the behavior of the [, test, and [[ commands.  Full
              pathnames in the command hash table are not subject to EXECIGNORE.
              Use this variable to ignore shared library files that have the
              executable bit set, but are not executable files.  The pattern
              matching honors the setting of the extglob shell option.
       FCEDIT L'editor predefinito 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:~".
       FUNCNEST
              Se impostato a un valore numerico maggiore di 0, definisce un
              livello massimo di nidificazione per una funzione. Invocazioni di
              funzione eccedenti questo livello provocheranno l'interruzione del
              comando corrente.
       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 non è impostato o
              non include un valore valido, tutte le righe lette
              dall'analizzatore sintattico 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 predefinito è
              ~/.bash_history.  Se è annullato la cronologia dei comandi non è
              salvata al termine di una shell.
       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, per contenere non più di
              quel numero di righe rimuovendo le voci più vecchie.  Il file
              della cronologia è inoltre troncato  a  questa  dimensione  dopo
              la scrittura  al  termine  di una shell.  Se il valore è 0, il
              file della cronologia è troncato alla dimensione zero.  Valori non
              numerici e valori numerici minori di zero inibiscono il
              troncamento.  La shell imposta il valore predefinito al valore di
              HISTSIZE dopo la lettura di un file di avvio.
       HISTIGNORE
              Una lista di modelli separati da due punti usata per decidere
              quali righe di comando devono essehonorsre 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 precedentedella cronologia. `&' può essere
              protetto usando una barra inversa; la barra inversa è rimossa
              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
              HISTIGNORE.  Il modello di ricerca rispetta l'impostazione
              dell'opzione di shell  extglob .
       HISTSIZE
              Il numero di comandi da tenere in memoria nella cronologia dei
              comandi (si veda HISTORY più avanti).  Se il valore è 0, i comandi
              non vengono salvati nell'elenco della cronologia.  Con valori
              numerici minori di zero ogni comando viene salvato nell'elenco
              della cronologia (non ci sono limiti).  La shell imposta il valore
              predefinito a 500 dopo aver letto i file d'inizializzazione.
       HISTTIMEFORMAT
              Se questa variabile è impostata e non nulla, il suo valore è usato
              come stringa di formato per strftime(3) per stampare la marcatura
              oraria 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. Per
              distinguere la marcatura oraria dalle altre righe della cronologia
              viene usato il carattere di commento.
       HOME   La home directory dell'utente corrente; l'argomento predefinito
              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, o non contiene il nome di un file leggibile, 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 predefinito è “<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
              variabile esiste ma non ha un valore numerico, o non ha alcun
              valore, il valore predefinito è 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 predefinito che è ~/.inputrc (si veda READLINE più avanti).
       INSIDE_EMACS
              If this variable appears in the environment when the shell starts,
              bash assumes that it is running inside an Emacs shell buffer and
              may disable line editing, depending on the value of TERM.
       LANG   Usata per determinare la categoria di localizzazione per qualsiasi
              categoria non specificatamente indicata 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 percorso,
              e determina il comportamento di espressioni di intervallo, classi
              di equivalenza e sequenze di ordinamento all'interno
              dell'espansione di nome di percorso e della corrispondenza 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.
       LC_TIME
              Questa variabile determina la categoria di localizzazione usata
              per la formattazione di data e ora.
       LINES  Usato dal comando composto select per determinare il numero di
              linee del terminale nella stampa delle liste di selezione.
              Automaticamente impostata se l'opzione  checkwinsize è abilitata o
              in una shell interattiva al ricevimento di un segnale SIGWINCH.
       MAIL   Se questo parametro è impostato a un nome di file o di directory e
              la variabile MAILPATH non è impostata, bash informa l'utente
              dell'arrivo di posta nel file specificato o nella directory del
              formato Maildir.
       MAILCHECK
              Specifica la frequenza (in secondi) con cui bash controlla la
              posta. Il valore predefinito è 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
              specificato 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 fpuò essere configurato per fornire un valore predefinito per
              questa variabile non c'è nessun valore predefinito), ma il
              posizionamento dei file di posta degli utenti utilizzato è
              dipendente 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
              INCORPORATI 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
              separate 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 predefinito è dipendente dal sistema ed è impostato
              dall'amministratore che installa bash. Un valore frequente è
              ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
       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.  Quando la shell entra in  modalità posix, imposta
              questa variabile se non fosse già impostata.
       PROMPT_COMMAND
              If this variable is set, and is an array, the value of each set
              element is executed as a command prior to issuing each primary
              prompt.  If this is set but not an array variable, its value is
              used as a command to execute instead.
       PROMPT_DIRTRIM
              Se impostata a un numero maggiore di zero, il valore è usato come
              il numero di componenti della directory finale da conservare
              quando si espandono i caratteri protetti della stringa di prompt
              \w e \W (si veda PROMPTING più avanti). I caratteri rimossi sono
              sostituiti da un'ellissi.
       PS0    Il valore di questo parametro è espanso (si veda STRINGHE DI
              PROMPT più avanti) e visualizzato dalle shell interattive dopo
              aver letto un comando e prima che il comando venga eseguito.
       PS1    Il valore di questo parametro è espanso (si veda STRINGHE DI
              PROMPT più avanti) e usato come stringa del prompt primario. Il
              valore predefinito è“\s-\v\$”.
       PS2    Il valore di questo parametro è espanso allo stesso modo di PS1 ed
              è usato come stringa di prompt secondario. Il valore predefinito è
              “> ”.
       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 del valore espanso di
              PS4 è replicato tante volte, quanto necessario, per indicare
              livelli multipli di indirezione. Il valore predefinito è “+”.
       SHELL  This variable expands to the full pathname to the shell.  If it is
              not set when the shell starts, bash assigns to it the full
              pathname of the current user's login shell.
       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.

              a parte opzionale p è una cifra che specifica la precisione, il
              numero di cifre frazionali dopo il separatore decimale. Un valore
              pari a 0 fa sì che nessun separatore decimale o frazione venga
              inserito nell'output. Possono essere specificate al massimo tre
              posizioni dopo il separatore decimale; valori di p maggiori 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\t%3lS'. Se il valore è
              nullo, non viene mostrata alcuna informazione di tempo. Una
              newline finale è aggiunta quando la stringa di formato è
              visualizzata.
       TMOUT  Se impostato a un valore maggiore di zero, TMOUT è trattato come
              il tempo limite (timeout) predefinito per il comando incorporato
              read. Il comando  select viene terminato se non riceve input dopo
              TMOUT secondi quando l'input proviene da un terminale. In una
              shell interattiva il valore è interpretato come il numero di
              secondi di attesa per l'input dopo l'emissione del prompt
              primario.  Bash termina dopo aver aspettato per quel numero di
              secondi se non arriva una riga completa di input.
       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 sottostringa del nome di un job sospeso. Il
              valore substring fornisce 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'identificatore 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
              predefinito è `^'.  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 carattere
              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 indicizzate e associative.
       Ogni variabile può essere usata come un array indicizzato; 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
       indicizzati sono referenziati usando numeri interi (incluse le
       espressioni aritmetiche) e cominciano con l'indice zero. Gli array
       associativi sono referenziati utilizzando stringhe arbitrarie.  Salvo che
       sia diversamente indicato, gli indici degli array indicizzati devono
       essre interi non negativi.

       Un array indicizzato è creato automaticamente se gli è assegnata una
       qualsiasi variabile usando la sintassi nome[deponente]=valore. Il
       deponente (indice dell'array) è trattato come un'espressione aritmetica
       che deve risultare un numero. Per dichiarare esplicitamente un array
       indicizzato, usare declare -a nome (si veda COMANDI INCORPORATI DELLA
       SHELL più avanti). È anche accettato declare -a nome[deponente]; il
       deponente viene ignorato.

       Array associativi sono creati usando declare -A nome.

       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.

       Arrays are assigned to using compound assignments of the form
       name=(value1 ... valuen), where each value may be of the form
       [subscript]=string.  Indexed array assignments do not require anything
       but string.  Each value in the list is expanded using all the shell
       expansions described below under EXPANSION.  When assigning to indexed
       arrays, if the optional brackets and subscript are supplied, that index
       is assigned to; otherwise the index of the element assigned is the last
       index assigned to by the statement plus one.  Indexing starts at zero.

       When assigning to an associative array, the words in a compound
       assignment may be either assignment statements, for which the subscript
       is required, or a list of words that is interpreted as a sequence of
       alternating keys and values: name=( key1 value1 key2 value2 ...).  These
       are treated identically to name=( [key1]=value1 [key2]=value2 ...).  The
       first word in the list determines how the remaining words are
       interpreted; all assignments in a list must be of the same type.  When
       using key/value pairs, the keys may not be missing or empty; a final
       missing value is treated like the empty string.

       Questa sintassi è accettata anche dal comando incorporato declare.
       Elementi singoli di un array possono essere assegnati con la sintassi
       nome[deponente]=valore introdotta più sopra.  Quando si fanno
       assegnamenti a un array indicizzato, se nome è indicizzato da un numero
       negativo, quel numero è interpretato come relativo all' indice massimo di
       nome aumentato di uno, perciò indici negativi si conteggiano dalla fine
       dell'array all'indietro, e un indice -1 corrisponde all'ultimmo elemento.

       Qualsiasi elemento di un array può essere referenziato con
       ${nome[deponente]}. Le parentesi sono richieste per evitare conflitti con
       l'espansione di percorso. Se deponente è @ o *, la parola espande a tutti
       gli elementi di nome. Questi deponenti 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 speciale 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[deponente]} espande alla lunghezza di ${nome[deponente]}. Se
       deponente è * o @, l'espansione è il numero di elementi dell'array.  Se
       il deponente usato per referenziare un elemento di un array indicizzato
       risulta, dopo l'espansione, un numero minore di zero, è interpretato come
       relativo all' indice massimo dell'array aumentato di uno, perciò indici
       negativi si conteggiano dalla fine dell'array all'indietro, e un indice
       -1 corrisponde all'ultimmo elemento.

       Referenziare una variabile array senza specificare un deponente equivale
       a referenziare l'array con un deponente pari a zero.  Ogni riferimento a
       una variabile usando un deponente valido è consentito, e bash creerà un
       array se necessario

       Una variabile array è considerata impostata se ad un deponente è stato
       assegnato un valore.  La stringa nulla è un valore valido.

       È possibile ottenere sia le chiavi (indici) che i valori di un array.
       ${!nome[@]} e ${!nome[*]} espandono agli indici assegnati nella variabile
       array nome. Quando è fra virgolette il trattamento è simile
       all'espansione dei parametri speciali @ e * posti tra virgolette.

       Il comando incorporato unset è usato per annullare gli array. unset
       nome[deponente] annulla l'elemento di array a indice deponente, sia per
       gli array indicizzati sia per quelli associativi.  Deponenti negativi di
       array indicizzati vengono interpretati come descritto in precedenza.
       Annullare l'ultimo elemento di un array non annulla la variabile. unset
       nome, dove nome è un array, o unset nome[deponente], dove deponente è * o
       @, rimuove l'intero array.

       When using a variable name with a subscript as an argument to a command,
       such as with unset, without using the word expansion syntax described
       above, the argument is subject to pathname expansion.  If pathname
       expansion is not desired, the argument should be quoted.

       Ciascuno dei comandi incorporati declare, local e readonly accetta
       un'opzione -a per specificare un array indicizzato e un'opzione -A per
       specificare un array associativo. Se vengono fornite entrambe le opzioni,
       -A ha la precedenza. 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 è eseguita sulla riga di comando dopo che essa è stata
       divisa in parole. Vi sono sette tipi di espansione effettuati: espansione
       delle parentesi graffe, espansione della tilde, espansione di parametro e
       variabile, sostituzione di comando, espansione aritmetica, suddivisione
       in parole e espansione di percorso.

       L'ordine di espansione è: espansione delle parentesi graffe, espansione
       della tilde, espansione di parametro e di variabile, espansione
       aritmetica, e sostituzione 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.  Questa è effettuata contemporaneamente come
       espansione della tilde, di parametro, di variabile e aritmetica, e come
       sostituzione di comando.

       Una volta effettuale queste espansioni, i caratteri di quotatura presenti
       nella parola originale vengono rimossi, a meno che siano essi stessi
       quotati (rimozione dei segni di quotatura)

       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 sono le espansioni di “$@” e
       "${nome[@]}", e in molti casi $* and ${name[*]} come spiegato sopra (si
       vedi PARAMETRI).

   Espansione delle parentesi graffe
       Espansione delle parentesi graffe è un meccanismo con il quale possono
       essere generate stringhe arbitrarie. 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 preambolo 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 contenuta 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[..incr]}, dove x e y
       sono o numeri interi o caratteri singoli e incr, un incremento opzionale,
       è un numero intero. Se si specificano numeri interi, l'espressione
       espande a ogni numero fra x e y, incluso,. Ai numeri interi specificati
       può essere aggiunto uno 0 iniziale per costringere ogni termine ad avere
       la stessa ampiezza. Quando x o y iniziano con uno zero, la shell tenta di
       forzare tutti i termini generati a contenere lo stesso numero di cifre,
       aggiungendo degli zeri ove necessario. Se si specificano caratteri,
       l'espressione espande a ogni carattere lessicograficamente compreso fra x
       e y, incluso, usando il C locale predefinito. Da notare che entrambi x e
       y devono essere dello stesso tipo.  Quando fornito, l'incremento è usato
       per distinguere i termini. L'incremento predefinito è 1 o -1 a seconda
       del caso.

       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 contesto dell'espansione
       o al testo tra parentesi graffe.

       Un'espansione delle parentesi graffe correttamente formata deve contenere
       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 una barra inversa 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, e inibisce l'espansione delle parentesi graffe
       fino alla  } di chiusura.

       Questo costrutto è tipicamente usato come abbreviazione quando il
       prefisso 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 trattati 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 specificato.

       Se il prefisso tilde è un `~+' il valore della variabile di shell PWD
       sostituisce il prefisso tilde. Se il prefisso tilde è un `~-', il valore
       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
       successo, la parola rimane invariata.

       Ogni assegnamento di variabile è controllato per prefissi tilde non
       quotati 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.

       Bash also performs tilde expansion on words satisfying the conditions of
       variable assignments (as described above under PARAMETERS)  when they
       appear as arguments to simple commands.  Bash does not do this, except
       for the declaration commands listed above, when in posix mode.

   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 una barra inversa o da
       stringhe quotate, e non parte di un'espansione aritmetica inclusa, di una
       sostituzione 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, o quando parametro è seguito da un carattere che non
              deve essere interpretato come parte del suo nome.  Il parametro  è
              un parametro di shell come descritto sopra (PARAMETRI) o un
              riferimento a un array (Array).

       If the first character of parameter is an exclamation point (!), and
       parameter is not a nameref, it introduces a level of indirection.  Bash
       uses the value formed by expanding the rest of parameter as the new
       parameter; this is then expanded and that value is used in the rest of
       the expansion, rather than the expansion of the original parameter.  This
       is known as indirect expansion.  The value is subject to tilde expansion,
       parameter expansion, command substitution, and arithmetic expansion.  If
       parameter is a nameref, this expands to the name of the parameter
       referenced by parameter instead of performing the complete indirect
       expansion.  The exceptions to this are the expansions of ${!prefix*} and
       ${!name[@]} described below.  The exclamation point must immediately
       follow the left brace in order to introduce indirection.

       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 sottostringa, usando le
       forme documentate più avanti (p.es., :-), 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 predefiniti. Se parametro non è impostato o è nullo,
              è sostituita l'espansione di parola. Altrimenti, il valore di
              parametro è sostituito.
       ${parametro:=parola}
              Assegna i valori predefiniti. 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 speciali 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 messaggio 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}
              Se parametro è nullo o è stato annullato, non è sostituito niente,
              altrimenti è sostituita l'espansione di parola.
       ${parametro:scostamento}
       ${parametro:scostamento:lunghezza}
              Espansione di sottostringa.Espande i caratteri del valore di
              parametro fino a lunghezza partendo dal carattere specificato da
              scostamento.  Se parametro è @, un array indicizzato con deponente
              @ o *, o un nome di un array associativo, il risultato differisce
              come descritto più avanti.  Se lunghezza viene omesso, espande
              alla sottostringa del valore di parametro partendo dal carattere
              specificato da scostamento fino alla fine del valore.  lunghezza e
              scostamento sono espressioni aritmetiche (si veda VALUTAZIONE
              ARITMETICA più avanti).

              Se scostamento è un numero minore di zero, il valore viene usato
              come scostamento nei caratteri dalla fine del valore di parametro.
              Se lunghezza è un numero minore di zero, viene interpretato come
              uno scostamento in caratteri dalla finedel valore di parametro
              piuttosto che come un numero di caratteri, e l'espansione è
              rappresentata dai caratteri fra lo scostamento e quel risultato.
              Si noti che uno scostamento negativo dev'essere separato dai due
              punti da almeno uno spazio per evitare che venga confuso con
              l'espansione di :-.

              Se parametro è @, il risultato è un numero di parametri
              posizionali pari a lunghezza a partire da scostamento.  Uno
              scostamento negativo è interpretato come relativo al parametro
              posizionale più grande aumentato di uno, cosicché uno scostamento
              di -1 corrisponde all'ultimo parametro posizionale.  È un errore
              di espansione se lunghezza risulta un numero minore di zero.

              Se parametro è un nome di array indicizzato con deponente @ o *,
              il risultato è un numero di elementi dell'array pari a lunghezza a
              partire da ${parametro[scostamento]}.  Uno scostamento negativo è
              inteso come relativo al massimo indice dell'array specificato
              aumentato di uno. È un errore di espansione se lunghezza è un
              numero minore di zero.

              L'espansione di substringa applicata a un array associativo
              produce risultati indefiniti.

              L'indicizzazione della sottostringa è a base zero a meno che non
              vengano usati i parametri posizionali, nel qual caso
              l'indicizzazione parte da 1 come impostazione predefinita.  Se
              scostamento è 0, e vengono usati i parametri posizionali, alla
              lista è aggiunto il prefisso $0.

       ${!prefisso*}
       ${!prefisso@}
              Nomi corrispondenti al prefisso. Espande ai nomi delle variabili i
              cui nomi iniziano con prefisso, separati dal primo carattere della
              variabile speciale IFS. Quando viene usato @ e l'espansione appare
              tra virgolette, ogni nome di variabile si espande in una parola
              separata.

       ${!nome[@]}
       ${!nome[*]}
              Lista delle chiavi di array. Se nome è una variabile 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 chiave espande a una parola separata.

       ${#parametro}
              lunghezza 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. Se parametro è un nome di array indicizzato
              con deponente negativo, quel numero è interpretato come relativo
              al  massimo  indice di parametro  aumentato di uno, perciò indici
              negativi si conteggiano dalla fine dell'array all'indietro, e un
              indice -1 corrisponde all'ultimo elemento.

       ${parametro#parola}
       ${parametro##parola}
              Rimozione del suffisso corrispondente al modello. La parola è
              espansa per produrre un modello proprio come nell'espansione di
              percorso, e confrontata col valore espanso di parametro usando le
              regole descritte più avanti in Modelli di ricerca.   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
              array con deponente @ o *, l'operazione di rimozione del modello è
              applicata a ognuno degli elementi dell'array, e l'espansione è la
              lista risultante.

       ${parametro%parola}
       ${parametro%%parola}
              Rimozione del suffisso corrispondente al modello. La parola è
              espansa per produrre un modello proprio come nell'espansione di
              percorso,  e confrontata col valore espanso di parametro usando le
              regole descritte più avanti in Modelli di ricerca.  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
              array con deponente @ o *, l'operazione di rimozione del modello è
              applicata a ognuno degli elementi dell'array, e l'espansione è la
              lista risultante.

       ${parameter/modello/stringa}
              Sostituzione di modello. 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. Il confronto è effettuato usando le regole
              descritte più avanti in Modelli di ricerca.  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 corrispondere
              all'inizio del valore espanso di parametro.  Se modello 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 l'opzione di shell
              nocasematch è abilitata, il confronto è effettuato senza
              distinzione distinzione tra lettere maiuscole e minuscole. Se
              parametro è @ o *, l'operazione di sostituzione è applicata a
              ognuno dei parametri posizionali, e l'espansione è la lista
              risultante. Se parametro è una variabile array con indice @ o *,
              l'operazione di sostituzione è applicata a ognuno degli elementi
              dell'array, e l'espansione è la lista risultante.

       ${parametro^modello}
       ${parametro^^modello}
       ${parametro,modello}
       ${parametro,,modello}
              Modifica minuscolo/maiuscolo. Questa espansione modifica in
              parametro i caratteri alfabetici da minuscolo a maiuscolo e
              viceversa. Il modello viene espanso per produrre un modello,
              proprio come nell'espansione del nome di percorso.   Ciascun
              carattere nel valore espanso di  parametro viene confrontato con
              modello e, se corrisponde al modello, le minuscole/maiuscole
              vengono convertite.   Il  modello  potrebbe  non cercare
              corrispondenze con  più di un carattere.  L'operatore ^ converte
              le lettere minuscole che  corrispondono a modello in lettere
              maiuscole; l'operatore , converte le lettere maiuscole trovate in
              lettere minuscole. Le espansioni ^^ e ,, convertono ogni carattere
              trovato nel valore espanso; le espansioni ^ e , trovano e
              convertono solo il primo carattere nel valore espanso. Se modello
              è omesso, è trattato come un ?, che individua tutti i caratteri.
              Se parametro è @ o *, l'operazione di conversione
              minuscole/maiuscole è applicata a tutti i parametri posizionali
              successivi, e l'espansione è la lista risultante. Se parametro è
              una variabile array indicizzata con @ o *, l'operazione di
              conversione minuscole/maiuscole è applicata a tutti i successivi
              elementi dell'array, e l'espansione è la lista risultante.

       ${parametro@operatore}
              Parameter transformation.  The expansion is either a
              transformation of the value of parameter or information about
              parameter itself, depending on the value of operator.  Each
              operator is a single letter:

              U      L'espansione è una stringa che è il valore di  parametro
                     coi caratteri alfabetici minuscoli convertiti in maiuscolo.
              u      L'espansione è una stringa che è il valore di  parametro
                     co primo carattere convertito in maiuscolo, se è
                     alfabetico.
              L      L'espansione è una stringa che è il valore di  parametro
                     coi caratteri alfabetici maiuscoli convertiti in minuscolo.
              Q      L'espansione è una stringa che è il valore di  parametro
                     quotato in un formato riutilizzabile come input.
              E      L'espansione è una stringa che è il valore di parametro con
                     sequenza di protezione con barra inversa espansa come se
                     fosse il meccanismo di quotatura  $'...'.
              P      L'espansione è una stringa che è il risutato
                     dell'espansione del valore di parametro come se fosse una
                     stringa di prompt (si veda più avanti STRINGHE D PROMPT).
              A      L'espansione è una stringa nella forma di istruzione di
                     assegnamento o di comando declare  che, se valutato,
                     ricreerà  parametro coi suoi attributi e col suo valore.
              K      Produces a possibly-quoted version of the value of
                     parameter, except that it prints the values of indexed and
                     associative arrays as a sequence of quoted key-value pairs
                     (see Arrays above).
              a      L'espansione è una stringa consistente di valori di flag
                     che rappresentano attirbuti di parametro.

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

              Il risultato dell'espansione è  soggetto alla suddivisione in
              parole e all'espansione di percorso come descritto più avanti..

   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 in un ambiente di
       subshell e rimpiazzando la sostituzione di comando con lo standard output
       del comando, con ogni newline finale cancellato. I newline intermedi non
       vengono cancellati, ma possono essere rimossi durante la suddivisione in
       parole. La sostituzione 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, la barra inversa conserva il suo significato letterale tranne
       quando è seguita da $, `, o \. Il primo apice rovesciato non preceduto da
       una barra inversa 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 una barra inversa 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'espansione
       aritmetica è:

              $((espressione))

       L'espressione è trattata come se fosse tra virgolette, ma le virgolette
       dentro le parentesi non sono trattate in modo speciale. Tutti i token
       dell'espressione sono assoggettati a espansione di parametro e di
       variabile, sostituzione di comando e rimozione dei caratteri di
       quotatura. Il risultato è trattato come espressione aritmetica da
       valutare.  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 sostituzione.

   Sostituzione di processo
       Process substitution allows a process's input or output to be referred to
       using a filename.  It takes the form of <(list) or >(list).  The process
       list is run asynchronously, and its input or output appears as a
       filename.  This filename is passed as an argument to the current command
       as the result of the expansion.  If the >(list) form is used, writing to
       the file will provide input for list.  If the <(list) form is used, the
       file passed as an argument should be read to obtain the output of list.
       Process substitution is supported on systems that support named pipes
       (FIFOs) or the /dev/fd method of naming open files.

       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,
       sostituzione di comando ed espansione aritmetica che non si trovano tra
       virgolette, per eseguire la suddivisione in parole.

       La shell tratta ogni carattere di IFS come un delimitatore, e suddivide
       in parole i risultati delle altre espansioni usando uno di questi
       caratteri come delimitatori di campo,  Se il valore di IFS non è
       impostato o il suo valore è esattamente <space><tab><newline>, il valore
       predefinito, sequenze di <space>, <tab> e <newline> all'inizio e alla
       fine dei risultati delle precedenti espansioni vengono ignorate, e
       qualsiasi sequenza di caratteri IFS, che non siano all'inizio o alla
       fine, servono per delimitare le parole. Se IFS ha un valore diverso da
       quello predefinito, allora sequenze di caratteri di spaziatura space e
       tab e newline 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 ("" o '') sono conservati e passati ai
       comandi come stringa vuota.  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 ed è conservato e passato a un comando come stringa
       vuota.  Quando un argomento nullo quotato appare come parte di una parola
       la cui espansione è non-nulla, l'argomento nullo viene rimosso.  Cioè, la
       parola -d'' diventa -d dopo la suddiviisone della parola e la rimozione
       dell'argomento nullo.

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

   Espansione di percorso
       After word splitting, unless the -f option has been set, bash scans each
       word for the characters *, ?, and [.  If one of these characters appears,
       and is not quoted, then the word is regarded as a pattern, and replaced
       with an alphabetically sorted list of filenames matching the pattern (see
       Pattern Matching below).  If no matching filenames are found, and the
       shell option nullglob is not enabled, the word is left unchanged.  If the
       nullglob option is set, and no matches are found, the word is removed.
       If the failglob shell option is set, and no matches are found, an error
       message is printed and the command is not executed.  If the shell option
       nocaseglob is enabled, the match is performed without regard to the case
       of alphabetic characters.  When a pattern is used for pathname expansion,
       the character “.” at the start of a name or immediately following a slash
       must be matched explicitly, unless the shell option dotglob is set.  The
       filenames “.” and “..” must always be matched explicitly, even if dotglob
       is set.  In other cases, the “.” character is not treated specially.
       When matching a pathname, the slash character must always be matched
       explicitly by a slash in the pattern, but in other matching contexts it
       can be matched by a special pattern character as described below under
       Pattern Matching.  See the description of shopt below under SHELL BUILTIN
       COMMANDS for a description of the nocaseglob, nullglob, failglob, and
       dotglob shell options.

       The GLOBIGNORE shell variable may be used to restrict the set of file
       names matching a pattern.  If GLOBIGNORE is set, each matching file name
       that also matches one of the patterns in GLOBIGNORE is removed from the
       list of matches.  If the nocaseglob option is set, the matching against
       the patterns in GLOBIGNORE is performed without regard to case.  The
       filenames “.” and “..” are always ignored when GLOBIGNORE is set and not
       null.  However, setting GLOBIGNORE to a non-null value has the effect of
       enabling the dotglob shell option, so all other filenames beginning with
       a “.” will match.  To get the old behavior of ignoring filenames
       beginning with a “.”, make “.*” one of the patterns in GLOBIGNORE.  The
       dotglob option is disabled when GLOBIGNORE is unset.  The pattern
       matching honors the setting of the extglob shell option.

       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. Una barra
       inversa segnala come speciale il carattere che segue; la barra inversa è
       ignorata 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
       significati:

              *      Corrisponde a qualsiasi stringa, inclusa la stringa nulla.
                     Quando è abilitata l'opzione di shell globstar, e in un
                     contesto di espansione del nome di percorso viene usato *,
                     due * adiacenti usati come unico criterio di ricerca
                     troveranno tutti i file e zero o più directory e
                     sottodirectory. Se seguito da un /, due * adiacenti
                     troveranno solo directory e sottodirectory.
              ?      Corrisponde a qualsiasi carattere singolo.
              [...]  Matches any one of the enclosed characters.  A pair of
                     characters separated by a hyphen denotes a range
                     expression; any character that falls between those two
                     characters, inclusive, using the current locale's collating
                     sequence and character set, is matched.  If the first
                     character following the [ is a ! or a ^ then any character
                     not enclosed is matched.  The sorting order of characters
                     in range expressions is determined by the current locale
                     and the values of the LC_COLLATE or LC_ALL shell variables,
                     if set.  To obtain the traditional interpretation of range
                     expressions, where [a-d] is equivalent to [abcd], set value
                     of the LC_ALL shell variable to C, or enable the
                     globasciiranges shell option.  A - may be matched by
                     including it as the first or last character in the set.  A
                     ] may be matched by including it as the first character in
                     the set.

                     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
                     equivalenza con la sintassi [=c=], che individua tutti i
                     caratteri con lo stesso grado di ordinamento (come definito
                     dalla localizzazione 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 sotto-modelli:

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

       Complicated extended pattern matching against long strings is slow,
       especially when the patterns contain alternations and the strings contain
       multiple matches.  Using separate matches against shorter strings, or
       using arrays of strings instead of a single long string, may be faster.

   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 permette ai puntatori  (handle)  ai  file di comando di
       essere duplicati, aperti, chiusi, fatti per far riferimento a file
       differenti, e può cambiare i file da cui il comando legge o su cui
       scrive.  La ridirezione può anche essere usata per modificare   i
       puntatori ai file nell'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.

       Ogni ridirezione che può essere preceduta da un numero di descrittore di
       file può invece essere preceduta da una parola della forma {varname}. In
       questo caso, per ogni operatore di ridirezione ad eccezione di >&- e <&-,
       la shell allocherà un descrittore di file maggiore o uguale a 10 e lo
       assegnerà a varname. Se >&- o <&- è preceduto da {varname}, il valore di
       varname definisce il descrittore di file da chiudere.  Se viene fornito
       {varname}, la ridirezione  persiste oltre l'ambito del comando,
       consentendo al programmatore di shell di gestire da sé il descrittore di
       file.

       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 e
       di variabile, 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 dallo standard output prima che lo standard output
       fosse ridiretto su dirlist.

       Bash  manipola parecchi nomi di file specialmente quando sono usati in
       ridirezioni, come descritto nella tavola seguente.  Se il sistema
       operativo nel quale Bash è in esecuzione fornisce questi file speciali,
       bash userà quelli; altrimenti li emulerà internamente col comportamento
       descritto più avanti.

              /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 ilsocket TCP 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 il socket UDP 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 descrittori 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 è specificato.

       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 è
       specificato. 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
       Con questo costrutto, sia l'uscita dello standard output (descrittore di
       file 1) che quella dello standard error (descrittore di file 2) sono
       ridirette 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

       Usando la seconda forma, parola potrebbe non espandersi a un numero o a
       -.  Se capita, si applicano altri operatori di ridirezione (vedi
       Duplicazione dei descrittori di file più avanti) per ragioni di
       compatibilità.

   Accodare Standard Output e Standard Error
       Con questo costrutto, sia l'uscita dello standard output (descrittore di
       file 1) che quella dello standard error (descrittore di file 2) viene
       accodata al file il cui nome è l'espansione di parola.

       Il formato per accodare lo standard output e lo standard error è:

              &>>parola

       Questo è semanticamente equivalente a

              >>parola 2>&1

       (si veda Duplicazione dei descrittori di file più avanti).

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

       Il formato degli here-document è il seguente:

              [n]<<[-]word
                      here-document
              delimitatore

       Nessuna espansione di parametro e di variabile, sostituzione di comando,
       espansione aritmetica o espansione di percorso è effettuata su parola. Se
       una  qualsiasi parte  di parola è quotata, il delimitatore è il risultato
       della rimozione dei caratteri di quotatura da parola, e le righe nel
       here-document non vengono espanse. Se parola non è quotata, tutte le
       righe del here-document sono soggette a espansione di parametro,
       sostituzione di comando ed espansione aritmetica, la sequenza \<newline>
       è ignorata, e \ deve essere usata per quotare i caratteri \, $ e `.

       e l'operatore di ridirezione è <<-, tutti i caratteri tab a inizio riga
       sono eliminati dalle righe in inpute dalla riga che contiene
       delimitatore. 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 è:

              [n]<<<parola

       La parola è sottoposta a espansione della tilde, espansione di parametro
       e di variabile, sostituzione di comando, espansione aritmetica e
       rimozione dei caratteri di quotatura.  L'espanisone di percorso e la
       suddivisione in parole non vengono effettuate.  Il risultato è dato come
       una stringa singola, con un newline finale,  al comando sul suo standard
       input (o sul descrittore di file n se viene specificato n.

   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. Se parola risulta essere,
       dopo l'espansione, -, il descrittore di file file n viene chiuso.Come
       caso speciale, se n è omesso, e parola non si espande in una o più cifre
       o in -, lo standard output e lo standard error sono ridiretti come
       descritto in precedenza.

   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 descrittore
       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 incorporati
       alias e unalias (si veda COMANDI INCORPORATI DELLA SHELL più avanti).  La
       prima parola di ogni comando, se non quotata, viene controllata 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 elencati sopra non
       possono apparire in un nome di alias. Il testo da sostituire 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 successiva 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 DELLA SHELL più
       avanti).

       Le regole che riguardano la definizione e l'uso degli alias possono
       facilmente generare confusione.  Bash legge sempre almeno una riga
       completa di input, e tutte le righe che costituiscono un comando
       composto, prima di eseguire qualsiasi comando di quella riga o il comanod
       composto.  Gli alias sono espansi quando un comando è letto, non quando è
       eseguito. Perciò, una definizione di alias che appaia sulla stessa riga
       che contiene già un altro comando non ha effetto fino a che non è stata
       letta la successiva 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. Come conseguenza, gli alias definiti
       in una funzione sono disponibili solo dopo che quella funzione è
       eseguita. 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
       possono essere raggiunte usando invece funzioni di shell.

FUNZIONI
       Una funzione di shell, definita come descritto prima in GRAMMATICA DELLA
       SHELL, immagazzina una serie di comandi per una futura esecuzione. 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 differenza 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 con queste eccezioni: la
       gestione dei segnali DEBUG e RETURN (si veda la descrizione del comando
       incorporato trap sotto COMANDI INCORPORATI DELLA 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) e la gestione del
       segnale ERR non viene ereditata a meno che l'opzione di shell -o errtrace
       sia stata abilitata.

       Variables local to the function may be declared with the local builtin
       command.  Ordinarily, variables and their values are shared between the
       function and its caller.  If a variable is declared local, the variable's
       visible scope is restricted to that function and its children (including
       the functions it calls).  Local variables "shadow" variables with the
       same name declared at previous scopes.  For instance, a local variable
       declared in a function hides a global variable of the same name:
       references and assignments refer to the local variable, leaving the
       global variable unmodified.  When the function returns, the global
       variable is once again visible.

       The shell uses dynamic scoping to control a variable's visibility within
       functions.  With dynamic scoping, visible variables and their values are
       a result of the sequence of function calls that caused execution to reach
       the current function.  The value of a variable that a function sees
       depends on its value within its caller, if any, whether that caller is
       the "global" scope or another shell function.  This is also the value
       that a local variable declaration "shadows", and the value that is
       restored when the function returns.

       For example, if a variable var is declared as local in function func1,
       and func1 calls another function func2, references to var made from
       within func2 will resolve to the local variable var from func1, shadowing
       any global variable named var.

       The unset builtin also acts using the same dynamic scope: if a variable
       is local to the current scope, unset will unset it; otherwise the unset
       will refer to the variable found in any calling scope as described above.
       If a variable at the current local scope is unset, it will remain so
       until it is reset in that scope or until the function returns.  Once the
       function returns, any instance of the variable at a previous scope will
       become visible.  If the unset acts on a variable at a previous scope, any
       instance of a variable with that name that had been shadowed will become
       visible.

       La variabie FUNCNEST, se impostata a un valore numerico maggiore di 0,
       definisce un livello massimo di nidificazione. Le invocazioni di funzione
       eccedenti tale limite provocano l'interruzione dell'intero comando.

       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. Qualsiasi 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 subshell
       automaticamente le trovino già definite con l'opzione -f del comando
       incorporato export. Una definizione di funzione può essere cancellata
       usando l'opzione -f del comando incorporato unset.

       Le funzioni possono essere ricorsive. La variabile FUNCNEST può essere
       usata per limitare la profondità dello stack della chiamata di funzione e
       restringere il numero di invocazioni della funzione. Come impostazione
       predefinita, 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,  il comando
       composto (( 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 precedenza, associatività e valori, sono gli stessi
       del linguaggio C. La seguente lista di operatori è raggruppata per
       operatori di uguale livello di precedenza. I livelli sono elencati in
       ordine di precedenza decrescente.

       id++ id--
              post-incremento e post-decremento di una variabile
       - +    meno e più unari
       ++id --id
              pre-incremento e pre-decremento di una variabile
       ! ~    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
       espr?espr:espr
              operatore condizionale
       = *= /= %= += -= <<= >>= &= ^= |=
              assegnamento
       espr1 , espr2
              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 espansione di
       parametro. Il valore di una variabile è valutato come un'espressione
       aritmetica quando è referenziata, o quando a una variabile a cui è stato
       dato l'attributo integer con declare -i è stato assegnato un valore. Un
       valore nullo viene considerato come 0. Non c'è bisogno di dichiarare come
       intera una variabile di shell per poterla usare in un'espressione.

       Integer constants follow the C language definition, without suffixes or
       character constants.  Constants with a leading 0 are interpreted as octal
       numbers.  A leading 0x or 0X denotes hexadecimal.  Otherwise, numbers
       take the form [base#]n, where the optional base is a decimal number
       between 2 and 64 representing the arithmetic base, and n is a number in
       that base.  If base# is omitted, then base 10 is used.  When specifying
       n, if a non-digit is required, the digits greater than 9 are represented
       by the lowercase letters, the uppercase letters, @, and _, in that order.
       If base is less than or equal to 36, lowercase and uppercase letters may
       be used interchangeably to represent numbers between 10 and 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
       effettuare comparazioni aritmetiche e fra stringhe.  I comandi test e [
       determinano il loro comportamento basato sul numero d argomenti; si veda
       la descrizione di questi comandi per ogni altra azione specifica del
       comando.

       Le espressioni sono formate dalle seguenti primitive unarie o binarie.
       Bash  manipola parecchi nomi di file specialmente quando sono usati in
       espressioni.  Se il sistema operativo nel quale Bash è in esecuzione
       fornisce questi file speciali, bash userà quelli; altrimenti li emulerà
       internamente con questo comportamento: se qualsiasi argomento 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
       utilizzano eventuali collegamenti simbolici e operano sul file puntato
       dal collegamento simbolico, invece che sul collegamento simbolico stesso.

       Quando vengono usati con [[, gli operatori < e > ordinano
       lessicograficamente usando la localizzazione corrente. Il comando test
       usa l'ordinamento ASCII.

       -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.
       -g file
              Vero se file esiste ed è impostato il suo bit set-group-id.
       -h file
              Vero se file esiste ed è un collegamento simbolico.
       -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.
       -G file
              Vero se file esiste ed è di proprietà del gruppo effettivo
              dell'utente.
       -L file
              Vero se file esiste ed è un collegamento simbolico.
       -N file
              Vero se file esiste ed è stato modificato dall'ultima volta che è
              stato letto.
       -O file
              Vero se file esiste ed è di proprietà dell'id utente effettivo.
       -S file
              Vero se file esiste ed è un socket.
       file1 -ef file2
              Vero se file1 e file2 fanno riferimento allo stesso dispositivo e
              agli stessi numeri di inode.
       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.
       -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.
       -v varname
              Vero se la variabile di shell varname è impostata (le è stato
              assegnato un valore).
       -R varname
              Vero se la variabile di shell varname è impostata (le è stato
              assegnato un valore) ed è un riferimento a un nome.
       -z stringa
              Vero se la lunghezza di stringa è zero.
       stringa
       -n stringa
              Vero se la lunghezza di stringa è diversa da zero.

       stringa1 == stringa2
       stringa1 = stringa2
              Vero se le stringhe sono uguali. Col comando test dovrebbe essere
              usato = per conformità con lo standard POSIX.  Quando è usato col
              comando [[, effettua la ricerca di corrispondenze come descritto
              precedentemente (Comandi composti).

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

       stringa1 < stringa2
              Vero se, lessicograficamente, stringa1 precede come ordine
              stringa2.

       stringa1 > stringa2
              Vero se, lessicograficamente, stringa1 segue come ordine stringa2.

       arg1 OP arg2
              OP è uno tra -eq, -ne, -lt, -le, -gt o -ge. Questi operatori
              aritmetici 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
              positivi o negativi. Quando è usato col comando [[, Arg1 e Arg2
              sono valutati come espressioni aritmetiche (vedi VALUTAZIONE
              ARITMETICA sopra).

ESPANSIONE DI COMANDO SEMPLICE
       When a simple command is executed, the shell performs the following
       expansions, assignments, and redirections, from left to right, in the
       following order.

       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 successiva.

       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
              RIDIREZIONE.

       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 verifica 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 eseguita.
       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
       localizzarla. Se esiste una funzione di shell con quel nome, viene
       invocata quella funzione, come descritto prima in FUNZIONI. Se il nome
       non corrisponde 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 cerca una funzione di shell, già
       definita, chiamata command_not_found_handle. Se questa funzione esiste,
       viene invocata in un ambiente di esecuzione separato col comando
       originale e gli argomenti di quest'ultimo come suoi argomenti, e lo stato
       d'uscita della funzione diventa lo stato d'uscita di quella subshell. Se
       quella funzione non è definita, 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
       esecuzione separato. L'argomento 0 è impostato al nome specificato, e i
       rimanenti argomenti del comando sono impostati agli argomenti
       specificati, 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 consistono
       di un singolo argomento opzionale che segue il nome dell'interprete 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:

       •      file aperti ereditati dalla shell all'invocazione, come modificati
              dalle ridirezioni fornite al comando incorporato exec

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

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

       •      i segnali da intercettare impostati da trap

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

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

       •      opzioni abilitate all'invocazione (sia in modo predefinito che con
              argomenti da riga di comando) o da set

       •      opzioni abilitate da shopt

       •      alias di shell definiti da alias

       •      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 ambiente di
       esecuzione separato che comprende tutto quello che viene illustrato qui
       di seguito. Se non altrimenti notato, i valori sono ereditati dalla
       shell.


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

       •      la directory di lavoro corrente

       •      la maschera del modo di creazione dei file

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

       •      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].

       Le subshell create per eseguire sostituzioni di comando ereditano il
       valore dell'opzione -e dalla shell genitrice. Quando non è in modalità
       posix, bash toglie l'opzione -e in tali subshell.

       Se un comando è invocato da un & e il job-control non è attivo, lo
       standard input predefinito per il comando è il file vuoto /dev/null.
       Altrimenti 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'invocazione, la shell esamina il suo ambiente e crea un parametro per
       ogni nome trovato, marcandolo automaticamente per essere esportato ai
       processi 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
       assegnamento 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 DI USCITA
       Lo stato d'uscita di un comando eseguito è il valore ritornato dalla
       chiamata di sistema waitpid o da una funzione equivalente. Gli stati
       d'uscita ricadono nell'intervallo fra 0 e 255 anche se, come spiegato più
       avanti, la shell può usare valori superiori a 125 in casi particolari.
       Anche gli stati d'uscita dei comandi incorporati della shell e dei
       comandi composti sono circoscritti in questo intervallo. In casi
       particolari la shell usa valori speciali per indicare specifiche
       situazioni di insuccesso.

       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,, generalmento opzioni non
       valide o argomenti mancanti.

       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.

       Come comportamento predefinito, la shell esce 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
       INCORPORATI 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
       relativo 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 costituita congiuntamente dal
       driver del terminale del kernel del sistema operativo 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 background),
       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 (processi
       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 (foreground -
       oppure sincroni). I processi in background (sullo sfondo - oppure
       asincroni) sono quelli il cui ID del gruppo di processo differisce da
       quello del terminale; tali processi sono immuni dai segnali generati da
       tastiera. Solo ai processi in primo piano è permesso di leggere o, se
       l'utente l'ha specificato con stty tostop, scrivere sul terminale. Ai
       processi nascosti che tentano di leggere dal terminale (o scriverci sopra
       quando stty tostop è in azione) è inviato un segnale SIGTTIN (SIGTTOU)
       dal driver del terminale del kernel, 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 (tipicamente ^Z, Control-Z) mentre un processo è in
       esecuzione, provoca la sospensione di quel processo e restituisce il
       controllo a bash. Battere 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
       primo piano, 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).

       There are a number of ways to refer to a job in the shell.  The character
       % introduces a job specification (jobspec).  Job number n may be referred
       to as %n.  A job may also be referred to using a prefix of the name used
       to start it, or using a substring that appears in its command line.  For
       example, %ce refers to a stopped job whose command name begins with ce.
       If a prefix matches more than one job, bash reports an error.  Using
       %?ce, on the other hand, refers to any job containing the string ce in
       its command line.  If the substring matches more than one job, bash
       reports an error.  The symbols %% and %+ refer to the shell's notion of
       the current job, which is the last job stopped while it was in the
       foreground or started in the background.  The previous job may be
       referenced using %-.  If there is only a single job, %+ and %- can both
       be used to refer to that job.  In output pertaining to jobs (e.g., the
       output of the jobs command), the current job is always flagged with a +,
       and the previous job with a -.  A single % (with no accompanying job
       specification) also refers to the current job.

       La semplice menzione di un job può essere usata per riportarlo in primo
       piano: %1 è un sinonimo per “fg %1”, che porta il job 1 dal background al
       foreground (in primo piano). 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
       eventuali 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(o, se è
       stata abilitata l'opzione di shell checkjobs usando il comando
       incorporato shopt, in esecuzione), la shell stampa un messaggio di
       avvertimento e, se viene abilitata l'opzione checkjobs, elenca i job e i
       loro stati. 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 messaggio di avvertimento e ogni job
       sospeso viene terminato.

       When the shell is waiting for a job or process using the wait builtin,
       and job control is enabled, wait will return when the job changes state.
       The -f option causes wait to wait until the job or process terminates
       before returning.

STRINGHE DI PROMPT
       When executing interactively, bash displays the primary prompt PS1 when
       it is ready to read a command, and the secondary prompt PS2 when it needs
       more input to complete a command.  Bash displays PS0 after it reads a
       command but before executing it.  Bash displays PS4 as described above
       before tracing each command when the -x option is enabled.  Bash allows
       these prompt strings to be customized by inserting a number of
       backslash-escaped special characters that are decoded as follows:
              \a     un carattere ASCII di campanello (07)
              \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
                     localizzazione. 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 del terminale in cui è eseguita la shell
              \n     newline [su una nuova riga]
              \r     ritorno carrello
              \s     il nome della shell, il basename 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 da
                     una tilde (usa il valore della variabile PROMPT_DIRTRIM)
              \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
              \\     una barra inversa
              \[     marca l'inizio di una sequenza di caratteri non stampabili,
                     che può essere usata per includere nel prompt una sequenza
                     di controllo del terminale
              \]     marca la fine di una sequenza di caratteri non stampabili

       The command number and the history number are usually different: the
       history number of a command is its position in the history list, which
       may include commands restored from the history file (see HISTORY below),
       while the command number is the position in the sequence of commands
       executed during the current shell session.  After the string is decoded,
       it is expanded via parameter expansion, command substitution, arithmetic
       expansion, and quote removal, subject to the value of the promptvars
       shell option (see the description of the shopt command under SHELL
       BUILTIN COMMANDS below).  This can have unwanted side effects if escaped
       portions of the string appear within command substitution or contain
       characters special to word expansion.

READLINE
       Questa è la libreria che gestisce la lettura dell'input quando si usa una
       shell interattiva, a meno che non si specifichi l'opzione --noediting
       all'invocazione della shell. La modifica di riga è usata anche quando
       viene passata l'opzione -e al comando incorporato read. Come
       comportamento predefinito, 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. La modifica di riga può essere abilitata in ogni
       momento con le opzioni -o emacs o -o vi del comando incorporato set (si
       veda COMANDI INCORPORATI DELLA SHELL più avanti). Per chiudere l'editor
       di riga dopo l'esecuzione della shell utilizzare l'opzione +o emacs o +o
       vi del comando incorporato set.

   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
       cancellato viene salvato per un possibile riutilizzo futuro (yanking). Il
       testo eliminato viene salvato in un kill-ring. Eliminazioni consecutive
       provocano l'accumulazione del testo in una unità, che può essere
       recuperata tutta in una volta. Comandi che non eliminano testo separano
       parti di testo nel kill-ring.

   Inizializzazione di Readline
       Readline is customized by putting commands in an initialization file (the
       inputrc file).  The name of this file is taken from the value of the
       INPUTRC variable.  If that variable is unset, the default is ~/.inputrc.
       If that file does not exist or cannot be read, the ultimate default is
       /etc/inputrc.  When a program which uses the readline library starts up,
       the initialization file is read, and the key bindings and variables are
       set.  There are only a few basic constructs allowed in the readline
       initialization file.  Blank lines are ignored.  Lines beginning with a #
       are comments.  Lines beginning with a $ indicate conditional constructs.
       Other lines denote key bindings and variable settings.

       Le associazioni di tasti predefiniti 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
       corrisponda 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
       universal-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
       universal-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
              \\     barra inversa
              \"     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
       protezione che iniziano con la barra inversa:
              \a     avviso (segnale acustico)
              \b     backspace
              \d     cancella [delete - tasto Del o Canc]
              \f     salto pagina
              \n     newline [su una nuova riga]
              \r     ritorno carrello
              \t     tabulazione orizzontale
              \v     tabulazione verticale
              \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
                     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 che sia un nome di funzione. Nel corpo della macro, i segni di
       protezione \ idescritti prima vengono espansi. La barra inversa 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. La modalità di modifica può
       essere cambiata 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-variabile valore
       or using the bind builtin command (see SHELL BUILTIN COMMANDS below).

       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 distinzione fra
       maiuscole e minuscole) o "1" sono equivalenti a On. Tutti gli altri
       valori sono equivalenti a Off. Le variabili e i loro valori predefiniti
       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 terminale.
       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.
       blink-matching-paren (Off)
              If set to On, readline attempts to briefly move the cursor to an
              opening parenthesis when a closing parenthesis is inserted.
       colored-completion-prefix (Off)
              If set to On, when listing completions, readline displays the
              common prefix of the set of possible completions using a different
              color.  The color definitions are taken from the value of the
              LS_COLORS environment variable.
       colored-stats (Off)
              Se impostata a On, readline visualizza i possibili completamenti
              usando colori diversi per indicare il tipo di file.   Le
              definizioni dei colori sono prese dalla variabile d'ambiente
              LS_COLORS.
       comment-begin (“#”)
              La stringa che è inserita quando è eseguito il comando
              insert-comment. Questo comando è associato a M-# in modalità
              comandi Emacs e a # in modalità comandi di vi.
       completion-display-width (-1)
              The number of screen columns used to display possible matches when
              performing completion.  The value is ignored if it is less than 0
              or greater than the terminal screen width.  A value of 0 will
              cause matches to be displayed one per line.  The default value is
              -1.
       completion-ignore-case (Off)
              Se impostato a On, readline effettua l'individuazione dei nomi di
              file e il completamento senza distinguere le lettere maiuscole
              dalle lettere minuscole.
       completion-map-case (Off)
              If set to On, and completion-ignore-case is enabled, readline
              treats hyphens (-) and underscores (_) as equivalent when
              performing case-insensitive filename matching and completion.
       completion-prefix-display-length (0)
              La lunghezza in caratteri del prefisso comune di una lista di
              possibili completamenti che è visualizzata senza modifiche.
              Quando è impostata a un valore maggiore di zero, i prefissi comuni
              più lunghi di questo valore sono rimpiazzati da un'ellissi quando
              vengono visualizzati possibili completamenti.
       completion-query-items (100)
              This determines when the user is queried about viewing the number
              of possible completions generated by the possible-completions
              command.  It may be set to any integer value greater than or equal
              to zero.  If the number of possible completions is greater than or
              equal to the value of this variable, readline will ask whether or
              not the user wishes to view them; otherwise they are simply listed
              on the terminal.
       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 protezione (in
              pratica, usando l'escape come il prefisso meta).  Il predefinito è
              Off, ma readline lo imposterà a On se la localizzazione contiene
              caratteri a otto bit.
       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.
       echo-control-characters (On)
              Quando è impostato a On, sui sistemi operativi che lo suppportano,
              readline visualizza un carattere corrispondente a un segnale
              generato dalla tastiera.
       editing-mode (emacs)
              Controlla se readline parte con un insieme di associazioni di
              tasti simile a Emacs o vi. editing-mode (modalità di modifica) può
              essere impostato a emacs o a vi.
       emacs-mode-string (@)
              If the show-mode-in-prompt variable is enabled, this string is
              displayed immediately before the last line of the primary prompt
              when emacs editing mode is active.  The value is expanded like a
              key binding, so the standard set of meta- and control prefixes and
              backslash escape sequences is available.  Use the \1 and \2
              escapes to begin and end sequences of non-printing characters,
              which can be used to embed a terminal control sequence into the
              mode string.
       enable-bracketed-paste (On)
              When set to On, readline will configure the terminal in a way that
              will enable it to insert each paste into the editing buffer as a
              single string of characters, instead of treating each character as
              if it had been read from the keyboard.  This can prevent pasted
              characters from being interpreted as editing commands.
       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.
       enable-meta-key (On)
              Quando è impostato a On, readline tenta di abilitare qualsiasi
              meta tasto modificatore che il terminale dichiara di supportare
              quando viene chiamato. Su molti terminali il meta tasto è usato
              per inviare caratteri a otto bit.
       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-history.
       history-size (unset)
              Definisce il numero massimo di voci salvate nella cronologia.  Se
              impostata a zero, vengono cancellate tutte le voci esistenti e
              nessuna nuova voce viene salvata.  Se impostata a un numero minore
              di zero, il numero di registrazioni è illimitato.  Come
              impostazione predefinita, il numero di voci di cronologia è
              impostato al valore della variabile di shell HISTSIZE .  Se si
              tenta di impostare history-size a un valore non numerico, il
              numero massimo di voci della cronologia sarà 500.
       horizontal-scroll-mode (Off)
              When set to On, makes readline use a single line for display,
              scrolling the input horizontally on a single screen line when it
              becomes longer than the screen width rather than wrapping to a new
              line.  This setting is automatically enabled for terminals of
              height 1.
       input-meta (Off)
              Se impostato a On, readline abilita l'input a otto bit (cioè, non
              toglie l'ottavo bit dai caratteri che legge), indipendentemente da
              quello che il terminale dichiara di supportare. Il nome meta-flag
              è un sinonimo per questa variabile.  Il predefinito è Off, ma
              readline lo imposterà a On se la localizzazione contiene caratteri
              a otto bit.
       isearch-terminators (“C-[C-J”)
              Una stringa di caratteri che fa terminare una ricerca incrementale
              senza eseguire successivamente il carattere come se fosse un
              comando. Se a questa variabile non è stato dato un valore, i
              caratteri ESC e 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 è equivalente a
              vi-command; emacs è equivalente a emacs-standard. Il valore
              predefinito è emacs; il valore di editing-mode determina anche la
              mappa dei tasti predefiniti.
       keyseq-timeout (500)
              Specifica quanto tempo readline attenderà un carattere quando
              legge una sequenza di tasti ambigua (una che può formare una
              sequenza di tasti completa usando l'input letto finora, o può
              accettare un input aggiuntivo per completare una sequenza di tasti
              più lunga).  Se non riceve nessun input entro il tempo limite,
              readline userà la sequenza di tasti più corta tra quelle
              possibili. Il valore è specificato in millisecondi, cosicché un
              valore di 1000 vuol dire che readline attenderà un secondo per un
              input aggiuntivo.  Se questa variabile è impostata a un valore
              minore o uguale a zero, o a un valore non numerico, readline
              attenderà fino a che non sia premuto un altro tasto per decidere
              quale sequenza di tasti completare.
       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
              modificate sono mostrate precedute da un asterisco (*).
       mark-symlinked-directories (Off)
              Se impostato a On, i nomi completati che sono collegamenti
              simbolici 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. Se impostata a Off, il
              `.' iniziale dev'essere fornito dall'utente come parte del nome di
              file da completare.
       menu-complete-display-prefix (Off)
              Se impostato a On, il completamento del menù visualizza il
              prefisso comune della lista di possibili completamenti (che può
              essere vuota) prima di scorrere ciclicamente la lista.
       output-meta (Off)
              Se impostato a On, readline mostra i caratteri con l'ottavo bit
              impostato direttamente, piuttosto che con una sequenza di
              protezione avente come prefisso meta. Il predefinito è Off, ma
              readline lo imposterà a On se la localizzazione contiene caratteri
              a otto bit.
       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.
       revert-all-at-newline (Off)
              Se impostato a On, readline annulla tutte le modifiche alle righe
              della cronologia prima di ritornare, quando viene eseguito
              accept-line. In modo predefinito, le righe della cronologia
              possono essere modificate e mantengono liste dei singoli
              anullamenti mediante chiamate a readline.
       show-all-if-ambiguous (Off)
              Questo cambia il comportamento predefinito delle funzioni di
              completamento. 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
              acustico.
       show-all-if-unmodified (Off)
              Questo cambia il comportamento predefinito delle funzioni di
              completamento in maniera simile a show-all-if-ambiguous. Se
              impostato a On, le parole che hanno più di un possibile
              completamento 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.
       show-mode-in-prompt (Off)
              Se impostata a On, aggiunge una stringa all'inizio del prompt che
              indica la modalità di modifica:  emacs (@), vi comando (:) o vi
              inserimento (+).  Le stringhe della modalità sono impostabili
              dall'utente (p.es. emacs-mode-string).
       skip-completed-text (Off)
              Se impostato a On, altera il comportamento predefinito del
              completamento quando viene inserita una corrispondenza nella riga.
              È attivo solo quando si effettua il completamento a metà di una
              parola. Se abilitato, readline non inserisce, dopo il
              completamento della parola, caratteri provenienti dal
              completamento che corrispondono ai caratteri della parola da
              completare che si trovano dopo il cursore; in tal modo porzioni di
              parola che seguono il cursore non vengono duplicati.
       vi-cmd-mode-string ((cmd))
              If the show-mode-in-prompt variable is enabled, this string is
              displayed immediately before the last line of the primary prompt
              when vi editing mode is active and in command mode.  The value is
              expanded like a key binding, so the standard set of meta- and
              control prefixes and backslash escape sequences is available.  Use
              the \1 and \2 escapes to begin and end sequences of non-printing
              characters, which can be used to embed a terminal control sequence
              into the mode string.
       vi-ins-mode-string ((ins))
              If the show-mode-in-prompt variable is enabled, this string is
              displayed immediately before the last line of the primary prompt
              when vi editing mode is active and in insertion mode.  The value
              is expanded like a key binding, so the standard set of meta- and
              control prefixes and backslash escape sequences is available.  Use
              the \1 and \2 escapes to begin and end sequences of non-printing
              characters, which can be used to embed a terminal control sequence
              into the mode string.
       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'elencazione 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
       effettuare 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
              alla modalità di modifica, al terminale in uso o all'applicazione
              che fa uso di readline. Il testo da verificare, dopo qualsiasi
              operatore di confronto, arriva fino alla fine della riga;  a meno
              che non sia diversamente specificato, 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 associare
                     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, ad
                     esempio, a sun di trovare una corrispondenza sia con sun
                     che con sun-cmd.

              version
                     The version test may be used to perform comparisons against
                     specific readline versions.  The version expands to the
                     current readline version.  The set of comparison operators
                     includes =, (and ==), !=, <=, >=, <, and >.  The version
                     number supplied on the right side of the operator consists
                     of a major version number, an optional decimal point, and
                     an optional minor version (e.g., 7.1). If the minor version
                     is omitted, it is assumed to be 0.  The operator may be
                     separated from the string version and from the version
                     number argument by whitespace.

              application
                     Il costrutto application è usato per includere impostazioni
                     specifiche per un'applicazione. Ogni programma 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

              variabile
                     The variable construct provides simple equality tests for
                     readline variables and values.  The permitted comparison
                     operators are =, ==, and !=.  The variable name must be
                     separated from the comparison operator by whitespace; the
                     operator may be separated from the value on the right hand
                     side by whitespace.  Both string and boolean variables may
                     be tested. Boolean variables must be tested against the
                     values on and off.

       $endif Questo comando, come si è visto nell'esempio precedente, fa
              terminare 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 cronologia
       che corrisponde alla stringa battuta finora. Una ricerca incrementale
       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 delimitare una ricerca
       incrementale. Se a quella variabile non è stato assegnato un valore, i
       caratteri di Escape e Control-J fanno arrestare una ricerca incrementale.
       Control-G interrompe una ricerca incrementale 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
       Control-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
       Control-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
       predefiniti a cui essi sono collegati. Nomi di comando senza una sequenza
       di tasti collegata a essi sono scollegati in modo predefinito. 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 precedente.
              Le parole sono composte di caratteri alfanumerici (lettere e
              cifre).
       shell-forward-word
              Si sposta in avanti fino alla fine della parola successiva. Le
              parole sono delimitate da metacaratteri di shell non quotati.
       shell-backward-word
              Si sposta indietro all'inizio della parola corrente o precedente.
              Le parole sono delimitate da metacaratteri di shell non quotati.
       previous-screen-line
              Attempt to move point to the same physical screen column on the
              previous physical screen line. This will not have the desired
              effect if the current Readline line does not take up more than one
              physical line or if point is not greater than the length of the
              prompt plus the screen width.
       next-screen-line
              Attempt to move point to the same physical screen column on the
              next physical screen line. This will not have the desired effect
              if the current Readline line does not take up more than one
              physical line or if the length of the current Readline line is not
              greater than the length of the prompt plus the screen width.
       clear-display (M-C-l)
              Clear the screen and, if possible, the terminal's scrollback
              buffer, then redraw the current line, leaving the current line at
              the top of the screen.
       clear-screen (C-l)
              Clear the screen, then redraw the current line, leaving the
              current line at the top of the screen.  With an argument, refresh
              the current line without clearing the screen.
       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,
              spostandosi indietro nella lista.
       next-history (C-n)
              Prende il successivo comando dalla lista della cronologia,
              spostandosi 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 caratteri
              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 cursore.
              Questa è una ricerca non incrementale.
       history-substring-search-backward
              Cerca all'indietro attraverso la cronologia una stringa di
              caratteri tra l'inizio della riga corrente e la posizione corrente
              del cursore (il punto). La stringa di ricerca può cercare
              corrispondenze dovunque in una riga della cronologia. Questa è una
              ricerca non incrementale.
       history-substring-search-forward
              Cerca in avanti attraverso la cronologia una stringa di caratteri
              tra l'inizio della riga corrente e il punto del cursore.  La
              stringa di ricerca può cercare corrispondenze dovunque in una riga
              della cronologia. Questa è una ricerca non incrementale.
       yank-nth-arg (M-C-y)
              Inserisce il primo argomento del comando precedente (generalmente
              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'argomento 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
              numerico, si comporta esattamente come yank-nth-arg. Chiamate
              consecutive a yank-last-arg percorrono l'elenco della cronologia
              all'indietro, inserendo ogni volta l'ultima parola (o la parola
              specificata dall'argomento della prima chiamata) di ogni riga.
              Qualsiasi argomento numerico fornito a queste chiamate successive
              determina la direzione di scorrimento nella cronologia. Un
              argomento negativo commuta la direzione di scorrimento
              (all'indietro o in avanti). I servizi dell'espansione della
              cronologia sono usati per estrarre l'ultima parola, 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
              espande gli alias e la cronologia così come tutte le parole 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
              Espande la cronologia e gli alias sulla riga corrente.
       insert-last-argument (M-., M-_)
              Un sinonimo di yank-last-arg.
       operate-and-get-next (C-o)
              Accept the current line for execution and fetch the next line
              relative to the current line from the history for editing.  A
              numeric argument, if supplied, specifies the history entry to use
              instead of the current line.
       edit-and-execute-command (C-x C-e)
              Invoca un editor sulla riga di comando corrente ed esegue il
              risultato come comandi di shell. Bash tenta di invocare $VISUAL,
              $EDITOR e emacs come editor, in quest'ordine.

   Comandi per cambiare il testo
       fine-del-file (generalmente C-e)
              Il carattere che indica fine-del-file come impostato, per esempio,
              da ``stty''.  Se questo carattere viene letto quando non ci sono
              caratteri sulla riga, e il punto è all'inizio della riga, Readline
              lo interpreta come fine dell'input non vi è alcun carattere nella
              riga, e ritorna EOF.
       delete-char (C-d)
              Cancella il carattere nel punto del cursore.  Se questa funzione è
              associata allo stesso carattere come il carattere EOF della tty,
              come C-d normalmente è, si veda sopra per gli effetti.
       backward-delete-char (Rubout)
              Cancella il carattere dopo il cursore. Quando è dato un argomento
              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
              letterale. 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 argomento
              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 argomento
              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
              precedente, 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 positivo
              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 piuttosto che
              sospingere il testo verso destra. I caratteri associati a
              backward-delete-char sostituiscono il carattere prima del punto
              con uno spazio. Questo comando è non associato in modo
              predefinito.

   Eliminazione e recupero
       kill-line (C-k)
              Elimina il testo dal punto del cursore fino alla fine della riga.
       backward-kill-line (C-x 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 corrente
              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.
       shell-kill-word
              Elimina dal punto del cursore fino alla fine della parola corrente
              o, se tra parole, fino alla fine della parola successiva. I
              delimitatori di parola sono gli stessi usati da
              shell-forward-word.
       shell-backward-kill-word
              Elimina la parola dietro il punto del cursore. I delimitatori di
              parola sono gli stessi usati da shell-backward-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 è salvato
              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 (M-\)
              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
              neitherneitherQuesto è 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 non è né una cifra né un segno meno, il contatore
              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
              nessuno di questi produce un 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-completions.
       menu-complete
              Simile a complete, ma sostituisce la parola da completare con una
              corrispondenza singola dalla lista dei possibili completamenti.
              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 individuati; può
              essere usato un argomento negativo per spostarsi all'indietro
              nella lista. Questo comando è da associare normalmente al tasto
              TABP, però non è associato in modo predefinito.
       menu-complete-backward
              Identico a menu-complete, ma si muove in senso inverso nella lista
              dei possibili completamenti, come se menu-complete avesse ricevuto
              un argomento negativo. Come comportamento predefinito, questo
              comando non ha restrizioni.
       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 possible-completions.
              Come comportamento predefinito, questo comando non è associato.
       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 cursore,
              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 cursore,
              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 cursore,
              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 cursore,
              confrontando il testo con le righe della cronologia cercando le
              possibili corrispondenze di completamento.
       dabbrev-expand
              Tenta il completamento del menù sul testo che precede il punto del
              cursore, confrontando il testo con le righe della lista della
              cronologia cercando le possibili corrispondenze di completamento.
       complete-into-braces (M-{)
              Effettua il completamento del nome di file e insericse la lista
              dei possibili completamenti racchiusi tra parentesi graffe,
              rendendo 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.
       print-last-kbd-macro ()
              Stampa l'ultima macro di tastiera definita in un formato adatto
              per il file inputrc.

   Varie
       re-read-init-file (C-x C-r)
              Legge il contenuto del file inputrc, e incorpora ogni associazione
              o assegnamento di variabile che trova.
       abort (C-g)
              Annulla il corrente comando di mmodifica ed emette il segnale
              acustico del terminale (dipendente dall'impostazione di
              bell-style).
       do-lowercase-version (M-A, M-B, M-x, ...)
              Se il carattere x battuto assieme al tasto Meta è maiuscolo,
              esegue il comando collegato al corrispondente carattere minuscolo.
              Il comportamento è indefinito se x è già minuscolo.
       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 corrente
              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 negativo
              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 negativo
              cerca occorrenze successive.
       skip-csi-sequence
              Legge abbastanza caratteri da esaurire una sequenza di
              combinazione di tasti come quelle definite per tasti quali Home e
              End. Queste sequenze iniziano con un Control Sequence Indicator
              (CSI), generalmente ESC-[. Se questa sequenza è collegata a "\[",
              i tasti che producono tali sequenze non hanno alcun effetto, a
              meno che non siano collegati esplicitamente a un comando readline,
              invece di inserire caratteri sparsi nel buffer di modifica. Come
              impostazione predefinita, questo comando non ha restrizioni, ma in
              genere è collegato a ESC-[.
       insert-comment (M-#)
              Senza un argomento numerico il valore della variabile readline
              comment-begin è inserito all'inizio della riga corrente. Se è
              fornito un argomento 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 battuto un codice di fine riga
              (newline). Il valore predefinito 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 completamenti.
       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
              individuati 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
       INCORPORATI DELLA SHELL più avanti), vengono invocati i servizi di
       completamento programmabile.

       First, the command name is identified.  If the command word is the empty
       string (completion attempted at the beginning of an empty line), any
       compspec defined with the -E option to complete is used.  If a compspec
       has been defined for that command, the compspec is used to generate the
       list of possible completions for the word.  If the command word is a full
       pathname, a compspec for the full pathname is searched for first.  If no
       compspec is found for the full pathname, an attempt is made to find a
       compspec for the portion following the final slash.  If those searches do
       not result in a compspec, any compspec defined with the -D option to
       complete is used as the default.  If there is no default compspec, bash
       attempts alias expansion on the command word as a final resort, and
       attempts to find a compspec for the command word from any successful
       expansion.

       Un volta trovato un comspec, questo è usato per generare la lista delle
       parole corrispondenti. Se non viene trovato un comspec, viene effettuato
       il completamento di bash predefinito 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 percorso all'opzione -G. Le parole
       generate 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 Suddivisione 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,
       COMP_POINT, COMP_KEY e COMP_TYPE sono assegnati valori come descritto in
       precedenza, 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 ( $1) è il nome del comando i cui argomenti sono stati
       completati, il secondo argomento ( $2) è la parola da completare e il
       terzo argomento ( $3) è la parola che precede  la parola da completare
       sulla riga di comando corrente. Non viene eseguita 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 corrispondenze.
       la funzione deve mettere i possibili completamenti della variabile array
       COMPREPLY, uno per elemento di array.

       In seguito, qualsiasi comando specificato con l'opzione -C viene invocato
       in un ambiente equivalente alla sostituzione di comando. Questo dovrebbe
       stampare una lista di completamenti, uno per riga, sullo standard output.
       Una barra inversa può essere usata per proteggere un newline, se
       necessario.

       Una volta generati tutti i possibili completamenti, ogni filtro
       specificato con l'opzione -X viene applicato alla lista. Il filtro è un
       modello come quello usato per l'espansione di percorso; una & nel modello
       è sostituita col testo della parola da completare. Una & letterale si può
       indicare con una barra inversa di protezione; la barra inversa viene
       rimossa prima della ricerca di una corrispondenza. Ogni completamento che
       corrisponde al modello viene rimosso dalla lista. Un ! iniziale nega il
       modello; in questo caso ogni completamento non corrispondente al modello
       viene rimosso.   Se l'opzione di shell nocasematch è abilitata, il
       confronto è effettuato senza distinzione fra maiuscole e minuscole nei
       caratteri alfabetici.

       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
       completamenti 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 directory.

       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.

       Come comportamento predefinito, se viene trovato un comspec, qualsiasi
       cosa generi viene restituito al codice di completamento come insieme
       completo di completamenti possibili. I completamenti di bash predefiniti
       non vengono tentati, e la readline predefinita 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
       predefiniti 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 predefiniti di
       readline vengono effettuati se il comspec (e, se tentato, il
       completamento predefinito 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 readline
       mark-directories, indipendentemente dall'impostazione della variabile di
       readline mark-symlinked-directories.

       Ci sono alcuni metodi per modificare dinamicamente i completamenti. Ciò è
       molto utile quando usato in combinazione con un completamento predefinito
       specificato con complete -D. Per le funzioni di shell eseguite come
       manipolatori di completamento è possibile richiedere di ritentare il
       completamento indicando il ritorno di uno stato d'uscita di 124. Se una
       funzione di shell ritorna 124, e cambia il compspec associato al comando
       sul quale si sta tentando il completamento (fornito come primo argomento
       quando viene eseguita la funzione), il completamento programmabile
       riparte dall'inizio, col tentativo di trovare un nuovo compspec per quel
       comando. Questo permette a una serie di completamenti di venir costruiti
       dinamicamente al tentativo di completamento, piuttosto che essere
       caricati tutti in una volta.

       Per esempio, ponendo che ci sia una libreria di compspec, ognuno tenuto
       in un file corrispondente al nome del comando, la seguente funzione di
       completamento predefinita caricherebbe i completamenti dinamicamente:

       _completion_loader()
       {
            . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
       }
       complete -D -F _completion_loader -o bashdefault -o default


STORIA
       Quando l'opzione -o 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 (predefinito 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.

       On startup, the history is initialized from the file named by the
       variable HISTFILE (default ~/.bash_history).  The file named by the value
       of HISTFILE is truncated, if necessary, to contain no more than the
       number of lines specified by the value of HISTFILESIZE.  If HISTFILESIZE
       is unset, or set to null, a non-numeric value, or a numeric value less
       than zero, the history file is not truncated.  When the history file is
       read, lines beginning with the history comment character followed
       immediately by a digit are interpreted as timestamps for the following
       history line.  These timestamps are optionally displayed depending on the
       value of the HISTTIMEFORMAT variable.  When a shell with history enabled
       exits, the last $HISTSIZE lines are copied from the history list to
       $HISTFILE.  If the histappend shell option is enabled (see the
       description of shopt under SHELL BUILTIN COMMANDS below), the lines are
       appended to the history file, otherwise the history file is overwritten.
       If HISTFILE is unset, or if the history file is unwritable, the history
       is not saved.  If the HISTTIMEFORMAT variable is set, time stamps are
       written to the history file, marked with the history comment character,
       so they may be preserved across shell sessions.  This uses the history
       comment character to distinguish timestamps from other history lines.
       After saving the history, the history file is truncated to contain no
       more than HISTFILESIZE lines.  If HISTFILESIZE is unset, or set to null,
       a non-numeric value, or a numeric value less than zero, the history file
       is not truncated.

       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 la modifica della riga di comando, sono
       disponibili comandi di ricerca in ciascuna modalità di modifica che
       fornisce 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 in
       modo predefinito 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 come comportamento predefinito.

       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.

       History expansion is performed immediately after a complete line is read,
       before the shell breaks it into words, and is performed on each line
       individually without taking quoting on previous lines into account.  It
       takes place in two parts.  The first is to determine which line from the
       history list to use during substitution.  The second is to select
       portions of that line for inclusion into the current one.  The line
       selected from the history is the event, and the portions of that line
       that are acted upon are words.  Various modifiers are available to
       manipulate the selected words.  The line is broken into words in the same
       fashion as when reading input, so that several metacharacter-separated
       words surrounded by quotes are considered one word.  History expansions
       are introduced by the appearance of the history expansion character,
       which is ! by default.  Only backslash (\) and single quotes can quote
       the history expansion character, but the history expansion character is
       also treated as quoted if it immediately precedes the closing double
       quote in a double-quoted string.

       Diversi caratteri inibiscono l'espansione della cronologia quando trovati
       immediatamente dopo il carattere di espansione della cronologia, 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
       possono 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 più avanti), 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 modifica 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 modifica 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 richiamati 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). La shell usa il carattere di
       commento per contrassegnare le informazioni di data e ora quando scrive
       il file della cronologia.

   Designatore di evento
       Un designatore di evento è un riferimento a un elemento di riga di
       comando nella lista della cronologia. A meno che il riferimento non sia
       assoluto, gli eventi sono relativi alla posizione corrente nell'elenco
       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 il comando corrente meno n.
       !!     Designa il comando precedente. Questo è un sinonimo per `!-1'.
       !stringa
              Designa il comando più recente che precede la posizione corrente
              nell'elenco della cronologia che inizia con stringa.
       !?stringa[?]
              Refer to the most recent command preceding the current position in
              the history list containing string.  The trailing ? may be omitted
              if string is followed immediately by a newline.  If string is
              missing, the string from the most recent search is used; it is an
              error if there is no previous search string.
       ^stringa1^stringa2^
              Quick substitution.  Repeat the previous command, replacing
              string1 with string2.  Equivalent to “!!:s^string1^string2^” (see
              Modifiers below).
       !#     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
              costituisce il nome del comando.
       n      La n-esima parola.
       ^      Il primo argomento. Cioè, la parola 1.
       $      L'ultima parola. Normalmente questo è l'ultimo argomento, ma si
              espanderà alla parola numero zero se c'è una sola parola nella
              riga.
       %      The first word matched by the most recent `?string?' search, if
              the search string begins with a character that is part of a word.
       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-     Abbreviates x-$ like x*, but omits the last word.  If x is
              missing, it defaults to 0.

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

   Modificatori
       After the optional word designator, there may appear a sequence of one or
       more of the following modifiers, each preceded by a `:'.  These modify,
       or edit, the word or words selected from the history event.

       h      Rimuove un componente finale in un nome di file, lasciando solo la
              testa.
       t      Rimuove tutti i componenti iniziali in un nome di file, lasciando
              la coda.
       r      Rimuove un suffisso finale della forma .xxx, lasciando il nome
              base (basename).
       e      Rimuove tutto tranne il suffisso finale.
       p      Stampa il nuovo comando ma non lo esegue.
       q      Quota le parole sostituite, prevenendo ulteriori sostituzioni.
       x      Quote the substituted words as with q, but break into words at
              blanks and newlines.  The q and x modifiers are mutually
              exclusive; the last one supplied is used.
       s/vecchio/nuovo/
              Substitute new for the first occurrence of old in the event line.
              Any character may be used as the delimiter in place of /.  The
              final delimiter is optional if it is the last character of the
              event line.  The delimiter may be quoted in old and new with a
              single backslash.  If & appears in new, it is replaced by old.  A
              single backslash will quote the &.  If old is null, it is set to
              the last old substituted, or, if no previous history substitutions
              took place, the last string in a !?string[?] search.  If new is
              null, each matching old is deleted.
       &      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      Apply the following `s' or `&' modifier once to each word in the
              event line.

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. I comandi incorporati :, true, false, e
       test non accettano opzioni e non trattano -- in modo speciale. I comandi
       incorporati exit, logout, return, break, continue, let e shift accettano
       ed elaborano argomenti che iniziano con - senza richiedere --. Altri
       comandi incorporati che accettano argomenti, ma per i quali non viene
       specificato che accettano opzioni, interpretano gli argomenti che
       iniziano con - come opzioni non valide e richiedono -- per impedire
       questa interpretazione.
       : [argomenti]
              Nessun effetto; il comando non fa niente, tranne l'espansione
              degli argomenti e l'effettuazione di ogni ridirezione specificata.
              Lo stato di ritorno è zero.

        .  nomefile [argomenti]
       source nomefile [argomenti]
              Read and execute commands from filename in the current shell
              environment and return the exit status of the last command
              executed from filename.  If filename does not contain a slash,
              filenames in PATH are used to find the directory containing
              filename.  The file searched for in PATH need not be executable.
              When bash is not in posix mode, the current directory is searched
              if no file is found in PATH.  If the sourcepath option to the
              shopt builtin command is turned off, the PATH is not searched.  If
              any arguments are supplied, they become the positional parameters
              when filename is executed.  Otherwise the positional parameters
              are unchanged.  If the -T option is enabled, source inherits any
              trap on DEBUG; if it is not, any DEBUG trap string is saved and
              restored around the call to source, and source unsets the DEBUG
              trap while it executes.  If -T is not set, and the sourced file
              changes the DEBUG trap, the new value is retained when source
              completes.  The return status is the status of the last command
              exited within the script (0 if no commands are executed), and
              false if filename is not found or cannot be read.

       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, è usato quello che
              la shell considera essere il job corrente. bg jobspec ritorna 0
              tranne quando viene eseguito con il job-control disabilitato o, se
              eseguito con il job-control abilitato, se jobspec non è stato
              trovato o è stato avviato senza usare job-control.

       bind [-m keymap] [-lpsvPSVX]
       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 [-m mappa-tasti] sequenza-tasti: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 fornite,
              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 (anche vi-move è un sinonimo) ; 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.
              -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.
              -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.
              -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
                     Cause shell-command to be executed whenever keyseq is
                     entered.  When shell-command is executed, the shell sets
                     the READLINE_LINE variable to the contents of the readline
                     line buffer and the READLINE_POINT and READLINE_MARK
                     variables to the current location of the insertion point
                     and the saved insertion point (the mark), respectively.  If
                     the executed command changes the value of any of
                     READLINE_LINE, READLINE_POINT, or READLINE_MARK, those new
                     values will be reflected in the editing state.
              -X     Elenca tutte le sequenze di tasti associati a comandi di
                     shell e i comandi associati in un formato che può essere
                     riusato come input.

              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 racchiusi
              vengono terminati. Il valore di ritorno è 0 tranne quando n non è
              maggiore o uguale a 1.

       builtin comando-incorporato [argomenti]
              Esegue il comando incorporato specificato, passandogli gli
              argomenti, 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 incorporato
              cd è comunemente ridefinito in questo modo. Lo stato di ritorno è
              falso se comando-incorporato non è un comando incorporato della
              shell.

       caller [espr]
              Restituisce il contesto di qualsiasi chiamata di subroutine attiva
              (una funzione di shell o uno script eseguito coi comandi
              incorporati . o source. Senza espr, il caller mostra il numero di
              riga e il nome di file di origine della chiamata di subroutine
              corrente. Se un intero non negativo è fornito come espr, 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 una traccia dello stack. Il frame
              corrente è il frame 0. Il valore di ritorno è 0 tranne quando la
              shell non sta eseguendo una chiamata di subroutine o quando espr
              non corrisponde a una posizione valida nello stack delle chiamate.

       cd [-L|[-P [-e]] [-@]] [dir]
              Change the current directory to dir.  if dir is not supplied, the
              value of the HOME shell variable is the default.  Any additional
              arguments following dir are ignored.  The variable CDPATH defines
              the search path for the directory containing dir: each directory
              name in CDPATH is searched for dir.  Alternative directory names
              in CDPATH are separated by a colon (:).  A null directory name in
              CDPATH is the same as the current directory, i.e., “.”.  If dir
              begins with a slash (/), then CDPATH is not used.  The -P option
              causes cd to use the physical directory structure by resolving
              symbolic links while traversing dir and before processing
              instances of .. in dir (see also the -P option to the set builtin
              command); the -L option forces symbolic links to be followed by
              resolving the link after processing instances of .. in dir.  If ..
              appears in dir, it is processed by removing the immediately
              previous pathname component from dir, back to a slash or the
              beginning of dir.  If the -e option is supplied with -P, and the
              current working directory cannot be successfully determined after
              a successful directory change, cd will return an unsuccessful
              status.  On systems that support it, the -@ option presents the
              extended attributes associated with a file as a directory.  An
              argument of - is converted to $OLDPWD before the directory change
              is attempted.  If a non-empty directory name from CDPATH is used,
              or if - is the first argument, and the directory change is
              successful, the absolute pathname of the new working directory is
              written to the standard output.  The return value is true if the
              directory was successfully changed; false otherwise.

       command [-pVv] comando [arg ...]
              Esegue comando con gli argomenti 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 predefinito
              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
              visualizzazione 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
              completamento programmabile le avesse generate direttamente da una
              specifica di completamento con gli stessi flag. Se viene
              specificata 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 corrispondenza.

       complete [-abcdefgjksuv] [-o comp-option] [-DEI] [-A action] [-G globpat]
       [-W wordlist]
              [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix]
              name [name ...]
       complete -pr [-DEI] [nome ...]
              Specify how arguments to each name should be completed.  If the -p
              option is supplied, or if no options are supplied, existing
              completion specifications are printed in a way that allows them to
              be reused as input.  The -r option removes a completion
              specification for each name, or, if no names are supplied, all
              completion specifications.  The -D option indicates that other
              supplied options and actions should apply to the “default” command
              completion; that is, completion attempted on a command for which
              no completion has previously been defined.  The -E option
              indicates that other supplied options and actions should apply to
              “empty” command completion; that is, completion attempted on a
              blank line.  The -I option indicates that other supplied options
              and actions should apply to completion on the initial
              non-assignment word on the line, or after a command delimiter such
              as ; or |, which is usually command name completion.  If multiple
              options are supplied, the -D option takes precedence over -E, and
              both take precedence over -I.  If any of -D, -E, or -I are
              supplied, any other name arguments are ignored; these completions
              only apply to the case specified by the option.

              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
                      comportamento di comspec oltre la semplice generazione di
                      completamenti. comp-option può essere uno di questi:
                      bashdefault
                              Effettua il resto dei completamenti predefiniti di
                              bash se comspec non genera corrispondenze.
                      default Usa il completamento del nome di file predefinito
                              di readline se comspec non genera corrispondenze.
                      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,
                              quotare caratteri speciali o sopprimere gli spazi
                              finali). Fatto per essere usato con le funzioni di
                              shell.
                      noquote Dice a readline di non quotare le parole
                              completate se sono nomi di file (la quotatura dei
                              nomi di file è il comportamento predefinito).
                      nosort  Tell readline not to sort the list of possible
                              completions alphabetically.
                      nospace Dice a readline di non aggiungere uno spazio (che
                              viene aggiunto in modo predefinito) alle parole
                              completate alla fine della riga.
                      plusdirs
                              Dopo che le corrispondenze definite da comspec
                              sono state generate, viene tentato il
                              completamento 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
                              disabilitati.
                      enabled Nomi di comandi incorporati della shell abilitati.
                      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.
              -C comando
                      comando viene eseguito in un ambiente di subshell, e il
                      suo output viene usato come lista di possibili
                      completamenti.
              -F funzione
                      La funzione di shell function viene eseguita nell'ambiente
                      di shell corrente.  Quando la funzione è eseguita, il
                      primo argomento  ($1)  è il nome del comando i cui
                      argomenti devono essere completati, il secondo argomento
                      ($2) è la parola da completare, e il terzo argomento ($3)
                      è la parola che precede la parola da completare sulla riga
                      di comando corrente. Al termine, i completamenti possibili
                      sono recuperati dal valore della variabile array COMPREPLY
                      .
              -G globpat
                      Il modello di espansione dei nomi di percorso globpat
                      viene espanso per generare i possibili completamenti.
              -P prefisso
                      prefisso è aggiunto all'inizio di ogni possibile
                      completamento dopo che sono state applicate tutte le altre
                      opzioni.
              -S suffisso
                      suffisso è aggiunto alla fine di ogni possibile
                      completamento dopo che sono state applicate tutte le altre
                      opzioni.
              -W wordlist
                      The wordlist is split using the characters in the IFS
                      special variable as delimiters, and each resultant word is
                      expanded.  Shell quoting is honored within wordlist, in
                      order to provide a mechanism for the words to contain
                      shell metacharacters or characters in the value of IFS.
                      The possible completions are the members of the resultant
                      list which match the word being completed.
              -X filterpat
                      filterpat  è un modello come quelli usati per l'espansione
                      del nome di percorso. È applicato all'elenco dei possibili
                      completamenti generati dalle opzioni e dagli argomenti
                      precedenti, e ogni completamento che corrisponde a
                      filterpat viene rimosso dall'elenco. Un ! iniziale in
                      filterpat nega il modello; in questo caso ogni
                      completamento che non concorda con filterpat viene
                      rimosso.

              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, viene 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 aggiungendo una
              specifica di completamento.

       compopt [-o opzione] [-DEI] [+o opzione] [nome]
              Modify completion options for each name according to the options,
              or for the currently-executing completion if no names are
              supplied.  If no options are given, display the completion options
              for each name or the current completion.  The possible values of
              option are those valid for the complete builtin described above.
              The -D option indicates that other supplied options should apply
              to the “default” command completion; that is, completion attempted
              on a command for which no completion has previously been defined.
              The -E option indicates that other supplied options should apply
              to “empty” command completion; that is, completion attempted on a
              blank line.  The -I option indicates that other supplied options
              should apply to completion on the initial non-assignment word on
              the line, or after a command delimiter such as ; or |, which is
              usually command name completion.

              Il valore di ritorno è vero, a meno che non venga fornita
              un'opzione non valida, venga fatto un tentativo per modificare le
              opzioni per un nome per il quale non esiste alcuna specifica di
              completamento, o accada un errore di output.

       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 n non è maggiore o uguale a 1.

       declare [-aAfFgiIlnrtux] [-p] [nome[=valore] ...]
       typeset [-aAfFgiIlnrtux] [-p] [nome[=valore] ...]
              Declare variables and/or give them attributes.  If no names are
              given then display the values of variables.  The -p option will
              display the attributes and values of each name.  When -p is used
              with name arguments, additional options, other than -f and -F, are
              ignored.  When -p is supplied without name arguments, it will
              display the attributes and values of all variables having the
              attributes specified by the additional options.  If no other
              options are supplied with -p, declare will display the attributes
              and values of all shell variables.  The -f option will restrict
              the display to shell functions.  The -F option inhibits the
              display of function definitions; only the function name and
              attributes are printed.  If the extdebug shell option is enabled
              using shopt, the source file name and line number where each name
              is defined are displayed as well.  The -F option implies -f.  The
              -g option forces variables to be created or modified at the global
              scope, even when declare is executed in a shell function.  It is
              ignored in all other cases.  The -I option causes local variables
              to inherit the attributes (except the nameref attribute)  and
              value of any existing variable with the same name at a surrounding
              scope.  If there is no existing variable, the local variable is
              initially unset.  The following options can be used to restrict
              output to variables with the specified attribute or to give
              variables attributes:
              -a     Ogni nome è una variabile array indicizzata (si veda Array
                     sopra).
              -A     Ogni nome è una variabile array associativa (si veda Array
                     sopra).
              -f     Usa solo nomi di funzioni.
              -i     La variabile è trattata come un intero; la valutazione
                     aritmetica (si veda VALUTAZIONE ARITMETICA sopra) è
                     effettuata quando alla variabile è assegnato un valore.
              -l     Quando alla variabile è assegnato un valore, tutti i
                     caratteri maiuscoli sono convertiti in minuscolo.
                     L'attributo upper-case è disabilitato.
              -n     Dà a ogni nome l'attributo nameref, rendendolo un
                     riferimento a un'altra variabile.  Quest'altra variabile è
                     definita dal valore di nome.   Tutti i riferimenti, gli
                     assegnamenti e le modifiche degli attributi a nome, tranne
                     quelli che usano o cambiano lo stesso attributo -n, sono
                     effettuati sulla variabile referenziata dal valore di nome.
                     L'attributo -n non può essere applicato alle variabili
                     array.
              -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
                     possono 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.
              -u     Quando alla variabile è assegnato un valore, tutti i
                     caratteri minuscoli sono convertiti in maiuscolo.
                     L'attributo lower-case è disabilitato.
              -x     Marca nomi per l'esportazione ai successivi comandi
                     attraverso l'ambiente.

              Usare `+' invece di `-' disattiva l'attributo, con l'eccezione che
              +a  e +A non possono essere usati per eliminare una variabile
              array e +r non rimuove l'attributo di sola lettura. Quando usate
              in una funzione, declare e typeset rendono ogni nome locale, come
              con il comando local, a meno che non venga fornita l'opzione -g.
              Se un nome di variabile è seguito da =valore, il valore della
              variabile è impostato a valore.  Il valore di ritorno è 0 tranne
              quando viene incontrata un'opzione non valida, viene fatto un
              tentativo di definire una funzione usando ``-f foo=bar'', un
              tentativo per assegnare un valore a una variabile in sola lettura,
              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 -, un
              tentativo per disattivare lo stato di sola lettura per una
              variabile in sola lettura, un tentativo per disattivate lo stato
              di array per una variabile array, o 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 predefinita è 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. La directory corrente è sempre la prima
              directory nello stack.
              -c     Svuota lo stack delle directory cancellando tutti gli
                     elementi.
              -l     Produce un elenco usando il percorso completo; il formato
                     predefinito 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.
              +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.

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

       disown [-ar] [-h] [jobspec ... | pid ... ]
              Without options, remove each jobspec from the table of active
              jobs.  If jobspec is not present, and neither the -a nor the -r
              option is supplied, the current job is used.  If the -h option is
              given, each jobspec is not removed from the table, but is marked
              so that SIGHUP is not sent to the job if the shell receives a
              SIGHUP.  If no jobspec is supplied, the -a option means to remove
              or mark all jobs; the -r option without a jobspec argument
              restricts operation to running jobs.  The return value is 0 unless
              a jobspec does not specify a valid job.

       echo [-neE] [arg ...]
              Emette gli arg, separati da spazi, seguiti da un newline. Lo stato
              di ritorno è  0, a meno che non si verifichi un errore di
              scrittura. Se è specificato -n, il newline finale è soppresso. Se
              è data l'opzione -e, viene abilitata l'interpretazione dei
              successivi caratteri preceduti dal carattere di protezione della
              barra inversa. L'opzione -E disabilita l'interpretazione di questi
              caratteri di protezione, anche su sistemi dove essi sono
              interpretati in modo predefinito. L'opzione di shell xpg_echo può
              essere usata per determinare dinamicamente se echo espande questi
              caratteri di protezione in modo predefinito oppure no. echo non
              interpreta -- come fine delle opzioni. echo interpreta le seguenti
              sequenze di protezione:
              \a     avviso (segnale acustico)
              \b     backspace
              \c     elimina ulteriore output
              \e
              \E     un carattere di escape
              \f     salto pagina
              \n     codice di fine riga (newline)
              \r     ritorno carrello
              \t     tabulazione orizzontale
              \v     tabulazione verticale
              \\     barra inversa
              \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
                     esadecimale HH (una o due cifre esadecimali)
              \uHHHH il carattere Unicode (ISO/IEC 10646) il cui valore è il
                     valore esadecimale HHHH (da una a quattro cifre
                     esadecimali)
              \UHHHHHHHH
                     il carattere Unicode (ISO/IEC 10646) il cui valore è il
                     valore esadecimale HHHHHHHH (da una a otto cifre
                     esadecimali)

       enable [-a] [-dnps] [-f nomefile] [nome ...]
              Abilita e disabilita i comandi incorporati della shell.
              Disabilitare 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
              incorporati prima di quelli su disco. Se è usato -n, ogni nome è
              disabilitato; 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 incorporati 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 disabilitati. Se è
              fornito -a, la lista stampata include tutti i comandi incorporati,
              con l'indicazione per ciascuno se è abilitato 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 verifica 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 trattino
              all'inizio dell'argomento 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.  Una subshell esce incondizionatamente se exec fallisce.
              Se comando non è specificato, qualsiasi ridirezione 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 [-fn] [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 nomi
              di tutte le variabili esportate. 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 uno 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 funzione.

       fc [-e nome-editor] [-lnr] [primo] [ultimo]
       fc -s [pat=rep] [cmd]
              The first form selects a range of commands from first to last from
              the history list and displays or edits and re-executes them.
              First and last may be specified as a string (to locate the last
              command beginning with that string) or as a number (an index into
              the history list, where a negative number is used as an offset
              from the current command number).  When listing, a first or last
              of 0 is equivalent to -1 and -0 is equivalent to the current
              command (usually the fc command); otherwise 0 is equivalent to -1
              and -0 is invalid.  If last is not specified, it is set to the
              current command for listing (so that ``fc -l -10'' stampa gli
              ultimi 10 comandi) e a primo altrimenti. Se primo non è
              specificato è impostato al precedente comando per la modifica 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 la modifica è completata, i comandi modificati sono
              listati ed eseguiti.

              Nella seconda forma, comando è rieseguito dopo che ogni istanza di
              pat è sostituita da rep.  Comando è interpretato come primo.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 è fornita
              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 insuccesso.

       fg [jobspec]
              Riprende jobspec in primo piano, e lo rende il job corrente. Se
              jobspec non è presente, è usata la nozione della shell di job
              corrente. Il valore di ritorno è quello del comando posto in primo
              piano, o insuccesso se eseguito mentre il job-control è
              disabilitato 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 name [arg ...]
              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 normally parses the positional parameters, but if more
              arguments are supplied as arg values, getopts parses those
              instead.

              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 vengono 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 è
              silenziosa, 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, specificata
              o non specificata. Ritorna falso se viene incontrata la fine delle
              opzioni o avviene un errore.

       hash [-lr] [-p nomefile] [-dt] [nome]
              Ogni volta che hash viene invocata, il percorso completo del
              comando nome è determinato ricercando le directory in $PATH e
              viene memorizzato. Ogni nome di percorso precedentemente
              memorizzato viene perso. 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 tutti 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 formato riutilizzabile come input.  Se nessun argomento è
              dato, ed è fornito solo -l, è stampata l'informazione circa i
              comandi memorizzati. Lo stato di ritorno è 0 (vero) tranne quando
              nome è irreperibile o viene fornita un'opzione non valida.

       help [-dms] [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 controllo della
              shell.
              -d     Visualizza una breve descrizione di ogni modello
              -m     Visualizza la descrizione di ogni modello in un formato
                     simile a manpage
              -s     Visualizza solo una breve sintassi d'uso per ogni modello

              Lo stato di ritorno è 0 tranne quando nessun comando è individuato
              dal modello.

       history [n]
       history -c
       history -d scostamento
       history -d iniziofine
       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 modificate.
              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 scostamento
                     Delete the history entry at position offset.  If offset is
                     negative, it is interpreted as relative to one greater than
                     the last history position, so negative indices count back
                     from the end of the history, and an index of -1 refers to
                     the current history -d command.
              -d inizio-fine
                     Cancella gli elementi della cronologia tra le posizioni
                     inizio e fine, incluse. Valori positivi e nagativi per
                     inizio e fine sono interpretati come descritto in
                     precedenza.
              -a     Accoda le “nuove” righe al file della cronologia. Queste
                     sono righe della cronologia inserite dall'inizio della
                     corrente sessione di bash, ma non ancora aggiunte 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 aggiunge
                     alla fine della 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 espansione
                     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 la variabile HISTTIMEFORMAT è impostata, l'informazione
              data/ora associata a ogni elemento della cronologia viene scritta
              nel file della cronologia, marcato col carattere di commento.
              Quando viene letto il file della cronologia, le righe che iniziano
              con un carattere di commento seguito immediatamente da una cifra
              sono interpretate come data e ora della voce di cronologia
              seguente. Il valore di ritorno è 0 tranne quando viene incontrata
              un'opzione non valida, avviene un errore mentre si legge o si
              scrive il file della cronologia, viene fornito uno scostamento 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.
              -n     Mostra le informazioni solo sui job che hanno cambiato
                     stato dall'ultima notifica di stato mostrata all'utente.
              -p     Elenca solo l'ID di processo del principale job del gruppo
                     di processo.
              -r     Mostra solo i job in esecuzione.
              -s     Mostra solo i 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|-L [sigspec | exit_status]
              Manda il segnale indicato da sigspec o signum al processo indicato
              da pid o jobspec. sigspec è o un nome di segnale, senza
              distinzione tra maiuscole e minuscole, 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.  L'opzione -L è equivalente a -l. kill restituisce 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 sopra). Se l'ultimo arg viene valutato
              0, let ritorna 1; altrimenti è ritornato 0.

       local [opzione] [nome[=valore] ... | - ]
              For each argument, a local variable named name is created, and
              assigned value.  The option can be any of the options accepted by
              declare.  When local is used within a function, it causes the
              variable name to have a visible scope restricted to that function
              and its children.  If name is -, the set of shell options is made
              local to the function in which local is invoked: shell options
              changed using the set builtin inside the function are restored to
              their original values when the function returns.  The restore is
              effected as if a series of set commands were executed to restore
              the values that were in place before the function.  With no
              operands, local writes a list of local variables to the standard
              output.  It is an error to use local when not within a function.
              The return status is 0 unless local is used outside a function, an
              invalid name is supplied, or name is a readonly variable.

       logout Termina una shell di login.

       mapfile [-d delim] [-n numero] [-O origine] [-s numero] [-t] [-u fd] [-C
       callback] [-c quantum] [array]
       readarray [-d delim] [-n numero] [-O origine] [-s numero] [-t] [-u fd]
       [-C callback] [-c quantum] [array]
              Legge righe dallo standard input all'interno della variabile array
              indicizzata array, o dal descrittore di file fd se viene fornita
              l'opzione -u. La variabile MAPFILE è l'array predefinito. Le
              opzioni, se fornite, hanno il seguente significato:
              -d     The first character of delim is used to terminate each
                     input line, rather than newline.  If delim is the empty
                     string, mapfile will terminate a line when it reads a NUL
                     character.
              -n     Copia al massimo numero righe. Se numero è 0 vengono
                     copiate tutte le righe.
              -O     Inizia assegnando array all'indice origine. L'indice
                     predefinito è 0.
              -s     Ignora le prime numero righe lette.
              -t     Rimuove il delimitatore (il predefinito è "newline") finale
                     da ogni riga letta.
              -u     Legge le righe dal descrittore di file fd invece che dallo
                     standard input.
              -C     Valuta callback ogni volta che vengono lette quantum righe.
                     L'opzione -c specifica quantum.
              -c     Specifica il numero di righe lette tra una chiamata e
                     l'altra di callback.

              Se -C è specificato senza -c, il quantum predefinito è 5000.
              Quando callback è valutato, viene fornito l'indice del successivo
              elemento di array da assegnare e la riga da attribuire a
              quell'elemento come argomenti aggiuntivi. callback viene valutato
              dopo che la riga è stata letta, ma prima che l'elemento di array
              sia stato assegnato.

              Se non è fornito con un'origine esplicita, mapfile azzera array
              prima della relativa assegnazione.

              mapfile ritorna successo, a meno che non vengano forniti
              un'opzione o un argomento di opzione non validi, array sia non
              valido o non assegnabile, oppure se array non è un array
              indicizzato.

       popd [-n] [+n] [-n]
              Rimuove degli elementi dallo stack delle directory. Senza
              argomenti, 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     Sopprime il normale cambiamento di directory quando rimuove
                     directory dallo stack, ossia viene manipolato solo lo
                     stack.
              +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.

              Se il comando popd ha successo, viene anche effettuato un dirs, e
              lo stato di ritorno è 0. popd ritorna falso se viene incontrata
              un'opzione non valida, lo stack delle directory è vuoto, è
              specificato un elemento non esistente nello stack delle directory,
              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. Con l'opzione -v l'output viene assegnato
              alla variabile var piuttosto che essere stampato sullo standard
              output.

              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
              formato, ognuna delle quali provoca la stampa dell'argomento
              seguente. Oltre alle specifiche di formato printf(1) standard,
              printf interpreta le seguenti estensioni:
              %b     causes printf to expand backslash escape sequences in the
                     corresponding argument in the same way as echo -e.
              %q     fa sì che printf stampi sull'output l'argomento
                     corrispondente in un formato riutilizzabile come input di
                     shell.
              %(datefmt)T
                     causes printf to output the date-time string resulting from
                     using datefmt as a format string for strftime(3).  The
                     corresponding argument is an integer representing the
                     number of seconds since the epoch.  Two special argument
                     values may be used: -1 represents the current time, and -2
                     represents the time the shell was invoked.  If no argument
                     is specified, conversion behaves as if -1 had been given.
                     This is an exception to the usual printf behavior.

              The %b, %q, and %T directives all use the field width and
              precision arguments from the format specification and write that
              many bytes from (or use that wide a field for) the expanded
              argument, which usually contains more characters than the
              original.

              Argomenti alle specifiche di formato non stringa sono trattati
              come costanti C, con l'eccezione che un segno meno o più iniziale
              è permesso, e che se il carattere iniziale coincide con un
              apostrofo o con delle virgolette, il valore è quello ASCII del
              carattere che segue.

              Il formato è riutilizzato più volte fino all'esaurimento degli
              argomenti. Se il formato richiede più argomenti di quelli forniti,
              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] [+n] [-n]
       pushd [-n] [dir]
              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, pushd 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 significato:
              -n     Sopprime il normale cambio di directory quando si ruotano o
                     si aggiungono directory allo stack, cosicché viene
                     manipolato solo lo stack.
              +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.
              dir    Adds dir to the directory stack at the top, making it the
                     new current working directory as if it had been supplied as
                     the argument to the cd builtin.

              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 directory, 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] [-a aname] [-d delim] [-i testo] [-n nchars] [-N nchars] [-p
       prompt] [-t tempo_limite] [-u fd] [nome ...]
              One line is read from the standard input, or from the file
              descriptor fd supplied as an argument to the -u option, split into
              words as described above under Word Splitting, and the first word
              is assigned to the first name, the second word to the second name,
              and so on.  If there are more words than names, the remaining
              words and their intervening delimiters are assigned to the last
              name.  If there are fewer words read from the input stream than
              names, the remaining names are assigned empty values.  The
              characters in IFS are used to split the line into words using the
              same rules the shell uses for expansion (described above under
              Word Splitting).  The backslash character (\) may be used to
              remove any special meaning for the next character read and for
              line continuation.  Options, if supplied, have the following
              meanings:
              -a aname
                     Le parole sono assegnate a indici sequenziali della
                     variabile array aname, partendo da 0. aname viene annullata
                     prima dell'assegnamento dei nuovi valori. Altri argomenti
                     nome vengono ignorati.
              -d delim
                     The first character of delim is used to terminate the input
                     line, rather than newline.  If delim is the empty string,
                     read will terminate a line when it reads a NUL character.
              -e     If the standard input is coming from a terminal, readline
                     (see READLINE above) is used to obtain the line.  Readline
                     uses the current (or default, if line editing was not
                     previously active) editing settings, but uses Readline's
                     default filename completion.
              -i testo
                     Se readline è in uso per leggere la riga, testo viene messo
                     nel buffer di modifica prima che inizi la correzione.
              -n nchars
                     read è considerata completata dopo aver letto nchars
                     caratteri invece di aspettare una riga di input completa,
                     ma rispetta un delimitatore se prima del delimitatore sono
                     letti meno di nchars caratteri.
              -N nchars
                     read returns after reading exactly nchars characters rather
                     than waiting for a complete line of input, unless EOF is
                     encountered or read times out.  Delimiter characters
                     encountered in the input are not treated specially and do
                     not cause read to return until nchars characters are read.
                     The result is not split on the characters in IFS; the
                     intent is that the variable is assigned exactly the
                     characters read (with the exception of backslash; see the
                     -r option below).
              -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 terminale.
              -r     La barra inversa non fa da carattere di protezione. La
                     barra inversa è considerata come parte della riga. In
                     particolare, una coppia barra_inversa-newline non può
                     essere usata poi come una continuazione di riga.
              -s     Modalità silenziosa. Se l'input viene da un terminale i
                     caratteri immessi non vengono visualizzati sul terminale.
              -t tempo_limite
                     Cause read to time out and return failure if a complete
                     line of input (or a specified number of characters)  is not
                     read within timeout seconds.  timeout may be a decimal
                     number with a fractional portion following the decimal
                     point.  This option is only effective if read is reading
                     input from a terminal, pipe, or other special file; it has
                     no effect when reading from regular files.  If read times
                     out, read saves any partial input read into the specified
                     variable name.  If timeout is 0, read returns immediately,
                     without trying to read any data.  The exit status is 0 if
                     input is available on the specified file descriptor,
                     non-zero otherwise.  The exit status is greater than 128 if
                     the timeout is exceeded.
              -u fd  Legge l'input dal descrittore di file fd.

              If no names are supplied, the line read, without the ending
              delimiter but otherwise unmodified, is assigned to the variable
              REPLY.  The exit status is zero, unless end-of-file is
              encountered, read times out (in which case the status is greater
              than 128), a variable assignment error (such as assigning to a
              readonly variable) occurs, or an invalid file descriptor is
              supplied as the argument to -u.

       readonly [-aAf] [-p] [nome[=parola] ...]
              I nomi dati sono da considerare in sola lettura; i valori di
              questi nomi non possono essere cambiati dagli assegnamenti
              successivi. Se è fornita l'opzione -f, sono così marcate le
              funzioni corrispondenti ai nomi. L'opzione -a restringe le
              variabili agli array indicizzati; l'opzione -A restringe le
              variabili agli array associativi. Se vengono fornite entrambe le
              opzioni, -A ha la precedenza. Se nessun argomento nome è dato, o
              se è fornita l'opzione -p, viene stampata una lista di tutti i
              nomi in sola lettura. Le altre opzioni possono essere usate per
              restringere l'output a una sotto-serie della serie di nomi in sola
              lettura. L'opzione -p provoca la visualizzazione dell'output in un
              formato riutilizzabile come input. Se un nome di variabile è
              seguito da =parola il valore della variabile è 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]
              Causes a function to stop executing and return the value specified
              by n to its caller.  If n is omitted, the return status is that of
              the last command executed in the function body.  If return is
              executed by a trap handler, the last command used to determine the
              status is the last command executed before the trap handler.  If
              return is executed during a DEBUG trap, the last command used to
              determine the status is the last command executed by the trap
              handler before return was invoked.  If return is used outside a
              function, but during execution of a script by the . (source)
              command, it causes the shell to stop executing that script and
              return either n or the exit status of the last command executed
              within the script as the exit status of the script.  If n is
              supplied, the return value is its least significant 8 bits.  The
              return status is non-zero if return is supplied a non-numeric
              argument, or is used outside a function and not during execution
              of a script by . or source.  Any command associated with the
              RETURN trap is executed before execution resumes after the
              function or script.

       set [--abefhkmnptuvxBCEHPT] [-o opzione-nome] [arg ...]
       set [+abefhkmnptuvxBCEHPT] [+o opzione-nome] [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'output
              è 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      Each variable or function that is created or modified is
                      given the export attribute and marked for export to the
                      environment of subsequent commands.
              -b      Riporta immediatamente lo stato dei job in background
                      terminati, invece che prima di stampare il prossimo prompt
                      primario. Questo è applicabile solo quando è abilitato il
                      job-control.
              -e      Exit immediately if a pipeline (which may consist of a
                      single simple command), a list, or a compound command (see
                      SHELL GRAMMAR above), exits with a non-zero status.  The
                      shell does not exit if the command that fails is part of
                      the command list immediately following a while or until
                      keyword, part of the test following the if or elif
                      reserved words, part of any command executed in a && or ||
                      list except the command following the final && or ||, any
                      command in a pipeline but the last, or if the command's
                      return value is being inverted with !.  If a compound
                      command other than a subshell returns a non-zero status
                      because a command failed while -e was being ignored, the
                      shell does not exit.  A trap on ERR, if set, is executed
                      before the shell exits.  This option applies to the shell
                      environment and each subshell environment separately (see
                      COMMAND EXECUTION ENVIRONMENT above), and may cause
                      subshells to exit before executing all the commands in the
                      subshell.

                      e un comando composto o una funzione di shell è eseguito
                      in un contesto in cui -e è ignorato, nessuno dei comandi
                      eseguiti all'interno di un comando composto o nel corpo di
                      una funzione verrà influenzato dall'impostazione di -e,
                      anche se -e è impostato e un comando ritorna uno stato di
                      insucesso.  Se un comando composto o una funzione di shell
                      imposta -e durante l'esecuzione in un contesto in cui -e è
                      ignorato, quelle impostazioni non avranno alcun effetto
                      finché il comando composto o il comando contenente la
                      chiamata di funzione sia completato.
              -f      Disabilita l'espansione di percorso.
              -h      Ricorda la posizione dei comandi man mano che sono
                      ritrovati per l'esecuzione. Questa è abilitata in modo
                      predefinito.
              -k      Tutti gli argomenti nella forma di istruzioni di
                      assegnamento sono posti nell'ambiente per un comando, non
                      solo quelli che precedono il nome del comando stesso.
              -m      Monitor mode.  Job control is enabled.  This option is on
                      by default for interactive shells on systems that support
                      it (see JOB CONTROL above).  All processes run in a
                      separate process group.  When a background job completes,
                      the shell prints a line containing its exit status.
              -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 è interattiva.
              -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 modifica della riga di
                              comando in stile emacs. Questo è abilitato in modo
                              predefinito quando la shell è interattiva, a meno
                              che la shell non sia avviata con l'opzione
                              --noediting. Questo inoltre influisce
                              sull'interfaccia di modifica usata per read -e.
                      errexit Lo stesso di -e.
                      errtrace
                              Lo stesso di -E.
                      functrace
                              Lo stesso di -T.
                      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 in modo predefinito nelle shell
                              interattive.
                      ignoreeof
                              L'effetto è lo stesso come se fosse stato eseguito
                              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. Come comportamento
                              predefinito, questa opzione è disabilitata.
                      posix   Cambia il comportamento di bash dove le operazioni
                              predefinite differiscono dallo standard POSIX, in
                              modo da corrispondere allo standard (modalità
                              posix).   Si veda più avanti VEDERE ANCHE dove
                              viene citato un documento che spiega nel dettaglio
                              come la modalità posix influenza il comportamento
                              di bash.
                      privileged
                              Lo stesso di -p.
                      verbose Lo stesso di -v.
                      vi      Usa un'interfaccia di modifica della riga di
                              comando in stile vi. Questo inoltre influisce
                              sull'interfaccia di modifica usata per read -e.
                      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 le variabili SHELLOPTS,
                      BASHOPTS, CDPATH e GLOBIGNORE se appaiono in un ambiente,
                      vengono ignorate.  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      Tratta le variabili e i parametri non impostati, diversi
                      dai parametri speciali "@" e "*", come un errore quando
                      effettua l'espansione di parametro. Se l'espansione è
                      tentata su una variabile o parametro non impostato, 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 associate.
              -B      La shell effettua l'espansione delle parentesi graffe (si
                      veda Espansione delle parentesi graffe sopra). Questo è
                      attivo in modo predefinito.
              -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 in modo predefinito quando la shell
                      è interattiva.
              -P      Se impostato, non risolve i collegamenti simbolici quando
                      esegue comandi come cd che cambiano la directory di lavoro
                      corrente. È invece usata la struttura di directory fisica.
                      Come comportamento predefinito, 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
                      rimanenti 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 in modo predefinito 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 valida.

       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 ...]
              Toggle the values of settings controlling optional shell behavior.
              The settings can be either those listed below, or, if the -o
              option is used, those available with the -o option to the set
              builtin command.  With no options, or with the -p option, a list
              of all settable options is displayed, with an indication of
              whether or not each is set; if optnames are supplied, the output
              is restricted to those options.  The -p option causes output to be
              displayed in a form that may be reused as input.  Other options
              have the following meanings:
              -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 optname,
              shopt mostra solo quelle opzioni che sono, rispettivamente,
              attivate o non attivate. Se non diversamente indicato le opzioni
              shopt sono disabilitate (non attivate) in modo predefinito.

              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 è:

              assoc_expand_once
                      If set, the shell suppresses multiple evaluation of
                      associative array subscripts during arithmetic expression
                      evaluation, while executing builtins that can perform
                      variable assignments, and while executing builtins that
                      perform array dereferencing.
              autocd  Se impostato, viene eseguito un nome di comando che è il
                      nome di una directory come se fosse un argomento del
                      comando cd. Questa opzione viene usata solo dalle shell
                      interattive.
              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 cambiare.
              cdspell Se impostata, vengono corretti errori minori
                      nell'ortografia di un componente di directory in un
                      comando cd. Gli errori ricercati sono caratteri invertiti,
                      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 elemento
                      della tabella hash non esiste più, viene effettuata una
                      normale ricerca di percorso.
              checkjobs
                      Se impostato, bash elenca lo stato dei job in esecuzione e
                      di quelli terminati prima di uscire da una shell
                      interattiva. Se vi sono job in esecuzione, l'uscita verrà
                      rimandata fino a quando non viene tentata una seconda
                      uscita senza che intervenga un comando (si veda JOB
                      CONTROL sopra). La shell ritarda sempre l'uscita se un
                      qualsiasi job viene fermato.
              checkwinsize
                      Se impostata, bash controlla la dimensione della finestra
                      dopo ogni comando esterno (non incorporato) e, se
                      necessario, aggiorna i valori di LINES e COLUMNS.
                      Quest'opzione è abilitata in modo predefinito.
              cmdhist If set, bash attempts to save all lines of a multiple-line
                      command in the same history entry.  This allows easy
                      re-editing of multi-line commands.  This option is enabled
                      by default, but only has an effect if command history is
                      enabled, as described above under HISTORY.
              compat31
              compat32
              compat40
              compat41
              compat42
              compat43
              compat44
                      These control aspects of the shell's compatibility mode
                      (see SHELL COMPATIBILITY MODE below).

              complete_fullquote
                      Se impostata, bash quota tutti i metacaratteri di shell
                      nei nomi di file e di directory quando effettua il
                      completamento.  Se non è impostata, bash rimuove i
                      metacaratteri come il segno del dollaro dal set di
                      caratteri che saranno quotati nei nomi di file completati
                      quando questi metacaratteri appaiono in riferimenti a
                      variabili di shell nelle parole da completare. Questo vuol
                      dire che i segni del dollaro nei nomi di variabile che si
                      espandono a directory non verranno quotati; comunque, non
                      saranno quotati neanche i segni del dollaro che appaiono
                      nei nomi di file.  Questo è attivo solo quando bash usa le
                      barre inverse per quotare i nomi di file completati.
                      Questa variabile è impostata in modo predefinito, che è il
                      comportamento predefinito di bash nelle versioni fino alla
                      4.2.

              direxpand
                      Se impostata, bash sostituisce i nomi di directory con i
                      risultati dell'espansione di parola mentre effettua il
                      completamento del nome di file.  Questo cambia i contenuti
                      del buffer di modifica di readline.  Se non è impostata,
                      bash tenta di conservare ciò che ha scritto l'utente.

              dirspell
                      Se impostata, bash tenta la correzione dell'ortografia sui
                      nomi di directory durante il completamento di parola se il
                      nome di directory fornito inizialmente non esiste.

              dotglob If set, bash includes filenames beginning with a `.' in
                      the results of pathname expansion.  The filenames “.” and
                      “..” must always be matched explicitly, even if dotglob is
                      set.

              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 in
                      modo predefinito per le shell interattive.

              extdebug
                      If set at shell invocation, or in a shell startup file,
                      arrange to execute the debugger profile before the shell
                      starts, identical to the --debugger option.  If set after
                      invocation, behavior intended for use by debuggers is
                      enabled:

                      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 fornita 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
                             esecuzione in una subroutine (una funzione di shell
                             o uno script di shell eseguito dai comandi
                             incorporati . o source), la shell simula 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:
                             sostituzione di comando, funzioni di shell, e
                             subshell invocate con ( comando ) ereditano le
                             intercettazione di segnale DEBUG e RETURN.

                      6.     Il tracciamento degli errori è abilitato:
                             sostituzione di comando, funzioni di shell, e
                             subshell invocate con ( comando ) ereditano le
                             intercettazione di segnale ERR.

              extglob Se impostata, le caratteristiche di corrispondenza estesa
                      di modelli descritte in precedenza, sotto Espansione di
                      percorso, sono abilitate.

              extquote
                      Se impostato, la quotatura $'string' e $"string" è
                      effettuata all'interno delle espansioni di ${parametro}
                      racchiuse tra virgolette. Quest'opzione è abilitata in
                      modo predefinito.

              failglob
                      Se impostata, i modelli che non generano nomi validi di
                      file durante l'espansione del percorso danno come
                      risultato 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
                      completamenti. Si veda VARIABILI DELLA SHELL sopra per una
                      descrizione di FIGNORE. Quest'opzione è abilitata in modo
                      predefinito.

              globasciiranges
                      Se impostata, le espressioni di intervallo nelle
                      espressioni tra parentesi graffe nella ricerca di
                      corrispondenze (si veda Modelli di ricerca più sopra) si
                      comportano come nella localizzazione tradizionale C quando
                      effettuano confronti.  Cioè, la sequenza di collazione
                      della localizzazione corrente non viene presa in
                      considerazione, cosicché b non collazionerà fra A e B , e
                      i caratteri ASCII maiuscolo e minuscolo verranno
                      collazionati insieme.

              globstar
                      Se impostata, il modello ** usato in un contesto di
                      espansione del nome di percorso trova tutti i file e zero
                      o più directory e sottodirectory che soddisfano i criteri
                      di ricerca. Se il modello è seguito da una /, trova solo
                      le directory e sottodirectory che soddisfano i criteri di
                      ricerca.

              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 successo.

              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 modifica readline,
                      permettendo ulteriori modifiche.

              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 in modo predefinito.

              huponexit
                      Se impostata, bash invia SIGHUP a tutti i job all'uscita
                      di una shell di login interattiva.

              inherit_errexit
                      If set, command substitution inherits the value of the
                      errexit option, instead of unsetting it in the subshell
                      environment.  This option is enabled when posix mode is
                      enabled.

              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 in modo predefinito.

              lastpipe
                      Se impostata, e job control non è attivo, la shell esegue
                      l'ultimo comando di una pipeline non eseguita in
                      background nell'ambiente di shell corrente.

              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.

              localvar_inherit
                      If set, local variables inherit the value and attributes
                      of a variable of the same name that exists at a previous
                      scope before any new value is assigned.  The nameref
                      attribute is not inherited.

              localvar_unset
                      If set, calling unset on local variables in previous
                      function scopes marks them so subsequent lookups find them
                      unset until that function returns. This is identical to
                      the behavior of unsetting local variables at the current
                      function scope.

              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
                      distinguere le maiuscole dalle minuscole quando effettua
                      l'espansione del percorso (si veda Espansione del percorso
                      sopra).

              nocasematch
                      Se impostata, bash confronta modelli senza distinguere le
                      maiuscole dalle minuscole quando ricerca corrispondenze
                      durante l'esecuzione dei comandi condizionali case o [[,
                      quando effettua espansioni di parola in una sostituzione
                      di modello, o quando filtra possibili completamenti come
                      parte di un completamento programmabile.

              nullglob
                      Se impostata, bash permette ai modelli che non individuano
                      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 in modo predefinito.

              progcomp_alias
                      If set, and programmable completion is enabled, bash
                      treats a command name that doesn't have any completions as
                      a possible alias and attempts alias expansion. If it has
                      an alias, bash attempts programmable completion using the
                      command word resulting from the expanded alias.

              promptvars
                      Se impostata, le stringhe di prompt subiscono espansione
                      di parametro, sostituzione di comando, espansione
                      aritmetica e rimozione dei segni di quotatura dopo che
                      sono stati espansi come descritto in STRINGHE DI PROMPT
                      sopra. Quest'opzione è abilitata in modo predefinito.

              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 in modo
                      predefinito.

              xpg_echo
                      Se impostata, il comando incorporato echo espande sequenze
                      di protezione tramite la barra inversa in modo
                      predefinito.

       suspend [-f]
              Sospende l'esecuzione di questa shell fino a che non riceve un
              segnale SIGCONT. Una shell di login non può essere sospesa;
              l'opzione -f può essere usata per non tener conto di questo e
              forzare la sospensione. 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 ]
              Return a status of 0 (true) or 1 (false) depending on the
              evaluation of the conditional expression expr.  Each operator and
              operand must be a separate argument.  Expressions are composed of
              the primaries described above under CONDITIONAL EXPRESSIONS.  test
              does not accept any options, nor does it accept and ignore an
              argument of -- as signifying the end of options.

              Le espressioni possono essere combinate usando i seguenti
              operatori, elencati in ordine decrescente di precedenza. La
              valutazione dipende dal numero di argomenti; si veda più avanti.
              La precedenza degli operatori è usata quando ci sono cinque o più
              argomenti.
              ! 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
                     operatore condizionale unario valido, l'espressione è
                     falsa.
              3 argomenti
                     Le seguenti condizioni sono applicate nell'ordine elencato.
                     Se il secondo argomento è uno degli operatori binari
                     condizionali elencati in precedenza, sotto ESPRESSIONI
                     CONDIZIONALI, il risultato dell'espressione è il risultato
                     del test binario che usa gli argomenti primo e terzo come
                     operandi. Quando ci sono tre argomenti, -a e -o sono
                     considerati operatori binari. Se il primo argomento è !, il
                     valore è la negazione del test con due argomenti costituito
                     dagli argomenti secondo e terzo. Se il primo argomento è
                     esattamente ( e il terzo argomento è esattamente ), il
                     risultato è il test, con 1 argomento, del secondo
                     argomento. Altrimenti, l'espressione è falsa.
              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 precedenze
                     usando le regole elencate sopra.

              Quando sono usati con test o [, gli operatori < e > vengono
              ordinati lessicograficamente secondo l'ordinamento ASCII.

       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 minuscolo 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 semplice, comando for, comando case, comando
              select, ogni comando for aritmetico, e prima di eseguire il primo
              comando in una funzione 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 è RETURN, il comando arg
              viene eseguito ogni volta che una funzione di shell o uno script
              eseguito coi comandi incorporati . o source completa l'esecuzione.

              If a sigspec is ERR, the command arg is executed whenever a
              pipeline (which may consist of a single simple command), a list,
              or a compound command returns a non-zero exit status, subject to
              the following conditions.  The ERR trap is not executed if the
              failed command is part of the command list immediately following a
              while or until keyword, part of the test in an if statement, part
              of a command executed in a && or || list except the command
              following the final && or ||, any command in a pipeline but the
              last, or if the command's return value is being inverted using !.
              These are the same conditions obeyed by the errexit (-e) option.

              I segnali ignorati al momento dell'ingresso della shell non
              possono essere intercettati, annullati o elencati I segnali
              intercettati non ignorati sono riportati al loro valore originale
              in una subshell o in un ambiente di subshell quando ne è stato
              creato uno. 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 name'' non avesse ritornato file. L'opzione -P forza
              PATH a ricercare ogni nome, anche se ``type -t name'' non dovesse
              ritornare file. Se un comando è nella tabella hash, -p e -P
              stampano il valore nella tabella hash, che non necessariamente è
              il file che appare per primo in PATH. Se viene usata l'opzione -a,
              type stampa tutti le posizioni che corrispondono 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 tutti argomenti vengono trovati, falso se
              non ne viene trovato alcuno.

       ulimit [-HS] -a
       ulimit [-HS] [-bcdefiklmnpqrstuvxPRT [limite]]
              Provides control over the resources available to the shell and to
              processes started by it, on systems that allow such control.  The
              -H and -S options specify that the hard or soft limit is set for
              the given resource.  A hard limit cannot be increased by a
              non-root user once it is set; a soft limit may be increased up to
              the value of the hard limit.  If neither -H nor -S is specified,
              both the soft and hard limits are set.  The value of limit can be
              a number in the unit specified for the resource or one of the
              special values hard, soft, or unlimited, which stand for the
              current hard limit, the current soft limit, and no limit,
              respectively.  If limit is omitted, the current value of the soft
              limit of the resource is printed, unless the -H option is given.
              When more than one resource is specified, the limit name and unit,
              if appropriate, are printed before the value.  Other options are
              interpreted as follows:
              -a     All current limits are reported; no limits are set
              -b     La dimensione massima del buffer del socket
              -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
              -k     Il numero massimo di kqueue (code degli eventi del kernel)
                     che possono essere allocate
              -l     la dimensione massima di memoria che può essere bloccata
              -m     la dimensione massima della memoria occupata (molti sistemi
                     non rispettano questo limite)
              -n     il numero massimo di descrittori di file aperti (la maggior
                     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 e, su alcunisistemi, ai suoi figli
              -x     Il numero massimo di file lock
              -P     Il numero massimo di pseudoterminali
              -R     The maximum time a real-time process can run before
                     blocking, in microseconds
              -T     Il numero massimo di thread

              If limit is given, and the -a option is not used, limit is the new
              value of the specified resource.  If no option is given, then -f
              is assumed.  Values are in 1024-byte increments, except for -t,
              which is in seconds; -R, which is in microseconds; -p, which is in
              units of 512-byte blocks; -P, -T, -b, -k, -n, and -u, which are
              unscaled values; and, when in posix mode, -c and -f, which are in
              512-byte increments.  The return status is 0 unless an invalid
              option or argument is supplied, or an error occurs while setting a
              new limit.  In POSIX Mode 512-byte blocks are used for the `-c'
              and `-f' options.

       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 in modalità simbolica
              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 simbolico; l'output
              predefinito è 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] [-n] [nome ...]
              For each name, remove the corresponding variable or function.  If
              the -v option is given, each name refers to a shell variable, and
              that variable is removed.  Read-only variables may not be unset.
              If -f is specified, each name refers to a shell function, and the
              function definition is removed.  If the -n option is supplied, and
              name is a variable with the nameref attribute, name will be unset
              rather than the variable it references.  -n has no effect if the
              -f option is supplied.  If no options are supplied, each name
              refers to a variable; if there is no variable by that name, a
              function with that name, if any, is unset.  Each unset variable or
              function is removed from the environment passed to subsequent
              commands.  If any of BASH_ALIASES, BASH_ARGV0, BASH_CMDS,
              BASH_COMMAND, BASH_SUBSHELL, BASHPID, COMP_WORDBREAKS, DIRSTACK,
              EPOCHREALTIME, EPOCHSECONDS, FUNCNAME, GROUPS, HISTCMD, LINENO,
              RANDOM, SECONDS, or SRANDOM are unset, they lose their special
              properties, even if they are subsequently reset.  The exit status
              is true unless a name is readonly.

       wait [-fn] [-p varname] [id ...]
              Wait for each specified child process and return its termination
              status.  Each id may be a process ID or a job specification; if a
              job spec is given, all processes in that job's pipeline are waited
              for.  If id is not given, wait waits for all running background
              jobs and the last-executed process substitution, if its process id
              is the same as $!, and the return status is zero.  If the -n
              option is supplied, wait waits for a single job from the list of
              ids or, if no ids are supplied, any job, to complete and returns
              its exit status.  If none of the supplied arguments is a child of
              the shell, or if no arguments are supplied and the shell has no
              unwaited-for children, the exit status is 127.  If the -p option
              is supplied, the process or job identifier of the job for which
              the exit status is returned is assigned to the variable varname
              named by the option argument.  The variable will be unset
              initially, before any assignment.  This is useful only when the -n
              option is supplied.  Supplying the -f option, when job control is
              enabled, forces wait to wait for id to terminate before returning
              its status, instead of returning when it changes status.  If id
              specifies a non-existent process or job, the return status is 127.
              Otherwise, the return status is the exit status of the last
              process or job waited for.

SHELL COMPATIBILITY MODE
       Bash-4.0 introduced the concept of a `shell compatibility level',
       specified as a set of options to the shopt builtin compat31, compat32,
       compat40, compat41, and so on).  There is only one current compatibility
       level -- each option is mutually exclusive.  The compatibility level is
       intended to allow users to select behavior from previous versions that is
       incompatible with newer versions while they migrate scripts to use
       current features and behavior. It's intended to be a temporary solution.

       This section does not mention behavior that is standard for a particular
       version (e.g., setting compat32 means that quoting the rhs of the regexp
       matching operator quotes special regexp characters in the word, which is
       default behavior in bash-3.2 and above).

       If a user enables, say, compat32, it may affect the behavior of other
       compatibility levels up to and including the current compatibility level.
       The idea is that each compatibility level controls behavior that changed
       in that version of bash, but that behavior may have been present in
       earlier versions.  For instance, the change to use locale-based
       comparisons with the [[ command came in bash-4.1, and earlier versions
       used ASCII-based comparisons, so enabling compat32 will enable
       ASCII-based comparisons as well.  That granularity may not be sufficient
       for all uses, and as a result users should employ compatibility levels
       carefully.  Read the documentation for a particular feature to find out
       the current behavior.

       Bash-4.3 introduced a new shell variable: BASH_COMPAT.  The value
       assigned to this variable (a decimal version number like 4.2, or an
       integer corresponding to the compatNN option, like 42) determines the
       compatibility level.

       Starting with bash-4.4, Bash has begun deprecating older compatibility
       levels.  Eventually, the options will be removed in favor of BASH_COMPAT.

       Bash-5.0 is the final version for which there will be an individual shopt
       option for the previous version. Users should use BASH_COMPAT on bash-5.0
       and later versions.

       The following table describes the behavior changes controlled by each
       compatibility level setting.  The compatNN tag is used as shorthand for
       setting the compatibility level to NN using one of the following
       mechanisms.  For versions prior to bash-5.0, the compatibility level may
       be set using the corresponding compatNN shopt option.  For bash-4.3 and
       later versions, the BASH_COMPAT variable is preferred, and it is required
       for bash-5.1 and later versions.

       compat31
              •      quoting the rhs of the [[ command's regexp matching
                     operator (=~)  has no special effect

       compat32
              •      interrupting a command list such as "a ; b ; c" causes the
                     execution of the next command in the list (in bash-4.0 and
                     later versions, the shell acts as if it received the
                     interrupt, so interrupting one command in a list aborts the
                     execution of the entire list)

       compat40
              •      the < and > operators to the [[ command do not consider the
                     current locale when comparing strings; they use ASCII
                     ordering.  Bash versions prior to bash-4.1 use ASCII
                     collation and strcmp(3); bash-4.1 and later use the current
                     locale's collation sequence and strcoll(3).

       compat41
              •      in posix mode, time may be followed by options and still be
                     recognized as a reserved word (this is POSIX interpretation
                     267)
              •      in posix mode, the parser requires that an even number of
                     single quotes occur in the word portion of a double-quoted
                     parameter expansion and treats them specially, so that
                     characters within the single quotes are considered quoted
                     (this is POSIX interpretation 221)

       compat42
              •      the replacement string in double-quoted pattern
                     substitution does not undergo quote removal, as it does in
                     versions after bash-4.2
              •      in posix mode, single quotes are considered special when
                     expanding the word portion of a double-quoted parameter
                     expansion and can be used to quote a closing brace or other
                     special character (this is part of POSIX interpretation
                     221); in later versions, single quotes are not special
                     within double-quoted word expansions

       compat43
              •      the shell does not print a warning message if an attempt is
                     made to use a quoted compound assignment as an argument to
                     declare (declare -a foo='(1 2)'). Later versions warn that
                     this usage is deprecated
              •      word expansion errors are considered non-fatal errors that
                     cause the current command to fail, even in posix mode (the
                     default behavior is to make them fatal errors that cause
                     the shell to exit)
              •      when executing a shell function, the loop state
                     (while/until/etc.)  is not reset, so break or continue in
                     that function will break or continue loops in the calling
                     context. Bash-4.4 and later reset the loop state to prevent
                     this

       compat44
              •      the shell sets up the values used by BASH_ARGV and
                     BASH_ARGC so they can expand to the shell's positional
                     parameters even if extended debugging mode is not enabled
              •      a subshell inherits loops from its parent context, so break
                     or continue will cause the subshell to exit.  Bash-5.0 and
                     later reset the loop state to prevent the exit
              •      variable assignments preceding builtins like export and
                     readonly that set attributes continue to affect variables
                     with the same name in the calling environment even if the
                     shell is not in posix mode

       compat50
              •      Bash-5.1 changed the way $RANDOM is generated to introduce
                     slightly more randomness. If the shell compatibility level
                     is set to 50 or lower, it reverts to the method from
                     bash-5.0 and previous versions, so seeding the random
                     number generator by assigning a value to RANDOM will
                     produce the same sequence as in bash-5.0
              •      If the command hash table is empty, bash versions prior to
                     bash-5.1 printed an informational message to that effect,
                     even when producing output that can be reused as input.
                     Bash-5.1 suppresses that message when the -l option is
                     supplied.

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:

       •      cambiare le directory con cd

       •      impostare o rimuovere i valori di SHELL, PATH, HISTFILE, ENV o
              BASH_ENV

       •      specificare nomi di comando contenenti una /

       •      specificare un nome di file contenente una / come argomento al
              comando incorporato .

       •      specifying a filename containing a slash as an argument to the
              history builtin command

       •      specificare un nome di file contenente una barra [/] come
              argomento all'opzione -p del comando incorporato hash

       •      importare definizioni di funzione dall'ambiente della shell
              all'avvio

       •      analizzare il valore di SHELLOPTS dall'ambiente di shell all'avvio

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

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

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

       •      usare il comando incorporato enable per abilitare comandi
              incorporati della shell che sono disabilitati

       •      specificare l'opzione -p al comando incorporato command

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

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

       When a command that is found to be a shell script is executed (see
       COMMAND EXECUTION above), rbash rimuove ogni restrizione nella shell
       creata dalla shell genitrice per eseguire lo script.

VEDERE ANCHE
       Bash Reference Manual, Brian Fox e Chet Ramey
       The Gnu Readline Library, Brian Fox e Chet Ramey
       The Gnu History Library, Brian Fox e Chet Ramey
       Portable Operating System Interface (POSIX) Part 2: Shell and Utilities,
       IEEE --
              http://pubs.opengroup.org/onlinepubs/9699919799/
       http://tiswww.case.edu/~chet/bash/POSIX -- una descrizione della modalità
       posix
       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
       /etc/bash.bash_logout
              Il file di pulizia della shell di login generale di sistema,
              eseguito quando una shell di login termina
       ~/.bash_profile
              Il file di inizializzazione personale, eseguito per le shell di
              login
       ~/.bashrc
              Il file di inizializzazione individuale per ogni shell interattiva
       ~/.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@gnu.org

       Chet Ramey, Case Western Reserve University
       chet.ramey@case.edu

NOTIFICA DEI "BUG"
       Se trovate un "bug" in bash, dovreste segnalarlo. Ma prima, dovreste
       assicurarvi che sia veramente un "bug", e che appaia nella versione più
       recente di bash. L'ultima versione è sempre disponibile da
       ftp://ftp.gnu.org/pub/gnu/bash/.

       Una volta determinato che avete individuato realmente un "bug", usate il
       comando bashbug per inviare una notifica del "bug". Se avete una
       correzione, siete invitati a inviare anche quella! Suggerimenti e
       rapporti su "bug" 'filosofici' possono essere inviati a bug-bash@gnu.org
       o inviati al newsgroup su Usenet gnu.bash.bug.

       TUTTI i rapporti sui "bug" dovranno includere:

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

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

       Commenti e notifiche su "bug" riguardanti questa pagina di manuale
       dovranno essere indirizzati a chet.ramey@case.edu.

BUG
       È 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
       subshell, che può essere sospesa come se fosse un'unica entità.

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

       Ci può essere solo un coprocesso attivo alla volta.


TRADUZIONE
       La traduzione italiana di questa pagina di manuale è stata creata da
       Augusto Lenardi <augusto@comune.modena.it>, Antonio Colombo
       <azc100@gmail.com>, Silvano Sallese <silvano@pluto.it> e Marco Curreli
       <marcocurreli@tiscali.it>

       Questa traduzione è documentazione libera; leggere la GNU General Public
       License Versione 3 o successiva per le condizioni di copyright.  Non ci
       assumiamo alcuna responsabilità.

       Per segnalare errori nella traduzione di questa pagina di manuale inviare
       un messaggio a <pluto-ildp@lists.pluto.it>.



GNU Bash 5.1                     29 ottobre 2020                         BASH(1)