Provided by: manpages-it_4.21.0-2_all bug

NOME

       bash - GNU Bourne-Again SHell

SINTASSI

       bash [opzioni] [stringa_di_comando | file]

COPYRIGHT

       Bash is Copyright (C) 1989-2022 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.
       -v        Stampa le righe in input alla shell appena sono lette.
       -x        Stampa comandi e i loro argomenti così come vengono eseguiti.
       -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 nomifile 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  d'inizializzazione  generale  di  sitema
              /etc/bash.bashrc  e  dal  file  personale  di  inizializzazione  standard  ~/.bashrc se la shell è
              interattiva (si veda INVOCAZIONE più avanti).

       --login
              Equivalente a -l.

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

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

       --norc Non  legge  né  esegue  il  file  file d'inizializzazione generale di sitema /etc/bash.bashrc e il
              personale di inizializzazione ~/.bashrc se la shell è  interattiva.  Quest'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).

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

       An  interactive  shell  is one started without non-option arguments (unless -s is specified)  and without
       the -c option, whose standard input  and  error  are  both  connected  to  terminals  (as  determined  by
       isatty(3)),  or  one  started  with  the  -i option. PS1 is set and $- includes i if bash is interactive,
       allowing a shell script or a startup file to test this state.

       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 nomifile come descritto
       più avanti in 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  di  login  non  interattiva  esegue  il  comando
       incorporato exit, bash legge ed esegue comandi dal file ~/.bash_logout, se esiste.

       Quando  una  shell  interattiva  che  non è una shell di login è avviata, bash legge ed esegue comandi da
       ~/.bashrc e  ~/.bashrc, se quei file esistono. Ciò può essere inibito utilizzando l'opzione  --norc.  Con
       l'opzione  --rcfile  file  bash  legge  ed  esegue  comandi  da  file  invece che da  /etc/bash.bashrc  e
       ~/.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-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 attempts to determine when it  is  being  run  with  its  standard  input  connected  to  a  network
       connection,  as  when  executed  by the historical remote shell daemon, usually rshd, or the secure shell
       daemon sshd. If bash determines it is being run non-interactively in this fashion, it reads and  executes
       commands  from /etc/bash.bashrc and ~/.bashrc, if these files exist and are readable. It will not do this
       if invoked as sh. The --norc option may be used to inhibit this behavior, and the --rcfile option may  be
       used  to  force  another file to be read, but neither rshd nor sshd generally invoke the shell with those
       options or allow them to be specified.

       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

       This section describes the syntax of the various forms of shell commands.

   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]] [ ! ] command1 [ [||&] command2 ... ]

       The  standard  output  of  command1  is  connected  via  a  pipe  to the standard input of command2. This
       connection is performed before any redirections specified by the command1(see REDIRECTION below).  If  |&
       is  used,  command1's  standard  error,  in  addition  to its standard output, is connected to command2's
       standard input through the pipe; it is shorthand for 2>&1 |. This implicit redirection  of  the  standard
       error to the standard output is performed after any redirections specified by command1.

       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.

       Each  command in a multi-command pipeline, where pipes are created, is executed in a subshell, which is a
       separate process. See COMMAND EXECUTION ENVIRONMENT  for  a  description  of  subshells  and  a  subshell
       environment.  If  the  lastpipe  option  is enabled using the shopt builtin (see the description of shopt
       below), the last element of a pipeline may be run by the shell process when job control is not active.

   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)
              list  is  executed  in  a subshell (see COMMAND EXECUTION ENVIRONMENT below for a description of a
              subshell  environment).  Variable  assignments  and  builtin  commands  that  affect  the  shell's
              environment  do  not  remain  in effect after the command completes. The return status is the exit
              status of list.

       { 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))
              The expression is evaluated according to the rules described below under ARITHMETIC EVALUATION. If
              the value of the expression is non-zero, the return status is 0; otherwise the return status is 1.
              The  expression undergoes the same expansions as if it were within double quotes, but double quote
              characters in expression are not treated specially and are removed.

       [[ espressione ]]
              Return a status of 0 or 1 depending on the evaluation of the  conditional  expression  expression.
              Expressions are composed of the primaries described below under CONDITIONAL EXPRESSIONS. The words
              between  the  [[  and  ]] do not undergo word splitting and pathname expansion. The shell performs
              tilde expansion, parameter and variable expansion,  arithmetic  expansion,  command  substitution,
              process  substitution,  and  quote  removal on those words (the expansions that would occur if the
              words were enclosed in double quotes). Conditional operators such as -f must  be  unquoted  to  be
              recognized as primaries.

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

       Si veda la descrizione del comando incorporato  test (sezione COMANDI INCORPORATI DELLA SHELL più avanti)
       per la gestione di parametri (cioè parametri mancanti).

       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.

       An additional binary operator, =~, is available, with the same precedence as == and !=. When it is  used,
       the  string  to  the  right of the operator is considered a POSIX extended regular expression and matched
       accordingly (using the POSIX regcomp and regexec interfaces usually described in  regex(3)).  The  return
       value is 0 if the string matches the pattern, and 1 otherwise. If the regular expression is syntactically
       incorrect,  the  conditional  expression's return value is 2. If the nocasematch shell option is enabled,
       the match is performed without regard to the case of alphabetic characters. If any part of the pattern is
       quoted, the quoted portion is matched literally. This means every character in the quoted portion matches
       itself, instead of having any special pattern matching meaning. If the  pattern  is  stored  in  a  shell
       variable, quoting the variable expansion forces the entire pattern to be matched literally. Treat bracket
       expressions  in  regular  expressions  carefully,  since normal quoting and pattern characters lose their
       meanings between brackets.

       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.
       Bash sets BASH_REMATCH in the global scope; declaring it as a local  variable  will  lead  to  unexpected
       results.

       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
              The  list  of  words following in is expanded, generating a list of items, and the set of expanded
              words is printed on the standard error, each preceded by a number. If the in word is omitted,  the
              positional  parameters are printed (see PARAMETERS below). select then displays the PS3 prompt and
              reads a line from the standard input. If the line consists of a number corresponding to one of the
              displayed words, then the value of name is set to that word. If the line is empty, the  words  and
              prompt  are displayed again. If EOF is read, the select command completes and returns 1. Any other
              value read causes name to be set to null. The line read is saved in the variable REPLY.  The  list
              is  executed  after each selection until a break command is executed. The exit status of select is
              the exit status of the last command executed in list, or zero if no commands were executed.

       case parola in [ [(] modello [ | modello ] ... ) lista ;; ] ... esac
              A case command first expands word, and tries to match it against each pattern in turn,  using  the
              matching rules described under Pattern Matching below. The word is expanded using tilde expansion,
              parameter and variable expansion, arithmetic expansion, command substitution, process substitution
              and quote removal. Each pattern examined is expanded using tilde expansion, parameter and variable
              expansion, arithmetic expansion, command substitution, process substitution, and quote removal. If
              the  nocasematch  shell  option  is  enabled, the match is performed without regard to the case of
              alphabetic characters. When a match is found, the  corresponding  list  is  executed.  If  the  ;;
              operator  is  used, no subsequent matches are attempted after the first pattern match. Using ;& in
              place of ;; causes execution to continue with the list associated with the next set  of  patterns.
              Using  ;;& in place of ;; causes the shell to test the next pattern list in the statement, if any,
              and execute any associated list on a successful match, continuing the case statement execution  as
              if  the pattern list had not matched. The exit status is zero if no pattern matches. Otherwise, it
              is the exit status of the last command executed in list.

       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.

       The syntax for a coprocess is:

              coproc [NOME] comando [ridirezioni]

       This  creates  a  coprocess named NAME. command may be either a simple command or a compound command (see
       above). NAME is a shell variable name. If NAME is not supplied, the default name is COPROC.

       The recommended form to use for a coprocess is

              coproc NAME { command [redirections]; }

       This form is recommended because simple commands result in the coprocess always being named  COPROC,  and
       it is simpler to use and more complete than the other compound commands.

       If  command  is  a  compound command, NAME is optional. The word following coproc determines whether that
       word is interpreted as a variable name: it is interpreted as NAME if it  is  not  a  reserved  word  that
       introduces  a  compound  command.  If  command is a simple command, NAME is not allowed; this is to avoid
       confusion between NAME and the first word of the simple command.

       When the coprocess is executed, the shell creates an array variable (see Arrays below) named NAME in  the
       context  of  the  executing  shell.  The  standard  output  of  command is connected via a pipe to a file
       descriptor in the executing shell, and that file descriptor is assigned to NAME[0]. The standard input of
       command is connected via a pipe to a file descriptor in the executing shell, and that file descriptor  is
       assigned  to  NAME[1].  This  pipe  is  established before any redirections specified by the command (see
       REDIRECTION below). The file descriptors can be utilized as arguments to shell commands and  redirections
       using  standard  word  expansions. Other than those created to execute command and process substitutions,
       the file descriptors are not available in subshells.

       The process ID of the shell spawned to execute the coprocess is available as the value  of  the  variable
       NAME_PID. The wait builtin command may be used to wait for the coprocess to terminate.

       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.  If  the  function
              reserved  word  is  used,  but  the  parentheses  are  not  supplied,  the braces are recommended.
              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).

       Character sequences of the form $'string' are treated as a special variant of single quotes. The sequence
       expands  to  string,  with  backslash-escaped  characters  in  string replaced as specified by the ANSI C
       standard. Backslash escape sequences, if present, are decoded as follows:
              \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 lookup and translation, using
       the LC_MESSAGES, TEXTDOMAINDIR, and TEXTDOMAIN shell variables. If the current locale is C or  POSIX,  if
       there are no translations available, or if the string is not translated, the dollar sign is ignored. This
       is  a  form  of  double  quoting,  so  the  string remains double-quoted by default, whether or not it is
       translated and replaced.  If  the  noexpand_translation  option  is  enabled  using  the  shopt  builtin,
       translated  strings  are single-quoted instead of double-quoted. See the description of shopt below under
       SHELLBUILTINCOMMANDS.

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]

       If  value  is  not  given,  the variable is assigned the null string. All values undergo tilde expansion,
       parameter and variable expansion, command substitution, arithmetic  expansion,  and  quote  removal  (see
       EXPANSION below). If the variable has its integer attribute set, then value is evaluated as an arithmetic
       expression  even  if  the $((...)) expansion is not used (see Arithmetic Expansion below). Word splitting
       and pathname expansion are not performed. Assignment statements may  also  appear  as  arguments  to  the
       alias,  declare,  typeset,  export,  readonly, and local builtin commands (declaration commands). When in
       posix mode, these builtins may appear in a command after one or more instances of the command builtin and
       retain these assignment statement properties.

       In the context where an assignment statement is assigning a value to a shell variable or array index, the
       += operator can be used to append to or add to the variable's previous value. This includes arguments  to
       builtin  commands  such  as  declare that accept assignment statements (declaration commands). When += is
       applied to a variable for which the integer attribute has been set, value is evaluated as  an  arithmetic
       expression  and  added to the variable's current value, which is also evaluated. When += is applied to an
       array variable using compound assignment (see Arrays below), the variable's value is not unset (as it  is
       when using =), and new values are appended to the array beginning at one greater than the array's maximum
       index  (for  indexed arrays) or added as additional key-value pairs in an associative array. When applied
       to a string-valued variable, value is expanded and appended to the variable's value.

       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).
       $      Expands to the process ID of the shell. In a subshell, it expands to the process ID of the current
              shell, not the 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 nome-file 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-file 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
              Quando referenziata, questa variabile espande nel nome della shell o script di shell  (identico  a
              $0;  si veda sopra la descrizione del parametro speciale 0). L'assegnamento a BASH_ARGV0 fa si che
              il vaqlore assegnato sia assegnato anche a  $0.  Se  BASH_ARGV0  viene  annullata,  perde  le  sue
              proprietà speciali, anche se è poi reimpostata.
       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 nomifile 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 Ogni  volta  che  questo  parametro  è referenziato, si espande a un numero intero casuale fra 0 e
              32767. Assegnando un valore a RANDOM viene inizializzata (seed) la sequenza di numeri casuali.  Se
              RANDOM viene annullata, perde le sue proprietà speciali, anche se è poi reimpostata.
       READLINE_ARGUMENT
              Any  numeric  argument  given  to  a  readline command that was defined using "bind -x" (see SHELL
              BUILTIN COMMANDS below)  when it was invoked.
       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,  it  expands  to  the  number  of  seconds  since  shell
              invocation.  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 are 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
              SHELL COMPATIBILITY MODE. 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-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-file.  PATH  non  è  usato  per  cercare  il
              nome-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    È  espansa  ed  eseguita  similarmente  a  BASH_ENV  (si  veda INVOCAZIONE sopra) quando una shell
              interattiva viene invocata in modalità posix.
       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-file (si veda READLINE più avanti). Un nome-file il cui suffisso corrisponde a una delle voci
              in  FIGNORE  è  escluso  dalla  lista  dei nomifile individuati. Un valore di esempio è ".o:~" (La
              quotatura è necessaria quando si assegna un valore a questa variabile, che contiene delle tilde).
       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-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 nomifile 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-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  Questa variabile si espande al percorso completo della shell. Se non è impostata quando  la  shell
              viene avviata, bash le assegna il percorso completo della shell di login dell'utente corrente.
       TIMEFORMAT
              Il  valore  di  questo parametro è usato come stringa di formato per specificare come dovrà essere
              mostrata l'informazione su data e ora per pipeline aventi come prefisso la parola riservata  time.
              Il  carattere  % introduce una sequenza di formattazione che è espansa a un valore di data e ora o
              ad altre informazioni. Le sequenze di formattazione e il loro  significato  sono  i  seguenti;  le
              parentesi quadre denotano parti opzionali.
              %%        Una % letterale.
              %[p][l]R  Il tempo trascorso in secondi.
              %[p][l]U  Il numero di secondi di utilizzo della CPU in modalità utente.
              %[p][l]S  Il numero di secondi di utilizzo della CPU in modalità sistema.
              %P        La percentuale di utilizzo della CPU, calcolata come (%U + %S) / %R.

              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.

       Agli  elementi dell'array vengono assegnati valori usando assegnamenti composti della forma nome=(valore1
       ... valoren), dove ogni valore può essere della  forma  [deponente]=stringa.  Le  assegnazioni  di  array
       indicizzati  non  richiedono  nient'altro  che stringa. Ogni valore nella lista è espanso usando tutte le
       espansioni della shell descritte più  avanti  in  ESPANSIONE.  Quando  si  fanno  assegnamenti  ad  array
       indicizzati,  se  vengono  fornite  le  parentesi  opzionali e il deponente, l'elemento viene assegnato a
       quell'indice; altrimenti l'indice dell'elemento assegnato è l'ultimo indice già utilizzato  aumentato  di
       uno. L'indicizzazione parte da 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.

       The += operator will append to an array variable when assigning using the compound assignment syntax; see
       PARAMETERS above.

       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'ultimo 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.

       The unset builtin is used to destroy arrays. unset name[subscript] destroys the array  element  at  index
       subscript, for both indexed and associative arrays. Negative subscripts to indexed arrays are interpreted
       as  described  above.  Unsetting the last element of an array variable does not unset the variable. unset
       name, where name is an array, removes the entire array. unset name[subscript], where subscript is * or @,
       behaves differently depending on whether name  is  an  indexed  or  associative  array.  If  name  is  an
       associative  array,  this  unsets  the  element with subscript * or @. If name is an indexed array, unset
       removes all of the elements but does not remove the array itself.

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

       A sequence expression takes the form {x..y[..incr]}, where x and y are either integers or single letters,
       and  incr,  an  optional  increment, is an integer. When integers are supplied, the expression expands to
       each number between x and y, inclusive. Supplied integers may be prefixed with 0 to force  each  term  to
       have  the  same  width.  When either x or y begins with a zero, the shell attempts to force all generated
       terms to contain the same number of digits, zero-padding where necessary. When letters are supplied,  the
       expression  expands  to  each character lexicographically between x and y, inclusive, using the default C
       locale. Note that both x and y must be of the same type  (integer  or  letter).  When  the  increment  is
       supplied,  it  is  used  as  the  difference  between  each  term.  The  default  increment is 1 or -1 as
       appropriate.

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

       Se  il  primo carattere di parametro è un punto esclamativo (!), e parametro non è un nameref,  introduce
       un livello di indirezione. Bash usa il valore formato espandento il resto  di  parametro  come  il  nuovo
       parametro;  questo  è  poi  espanso  e  quel  valore  è  usato  nel  resto dell'espansione, piuttosto che
       l'espansione del parametro originario. Questa  è  conosciuta  come  espansione  indiretta.  Il  valore  è
       soggetto  all'espansione  della  tilde,  espansione  di parametro, sostituzione di comando, ed espansione
       aritmetica. Se parametro è un nameref, questo espande al nome del parametro  referenziato  da   parametro
       invece  di  effettuare  l'espanzione  indiretta  completa.  Le  eccezioni  a  ciò  sono  le espansioni di
       ${!prefisso*} e ${!nome[@]} descritte più avanti. Il punto esclamativo  deve  seguire  immediatamente  la
       parentesi graffa iniziale per introdurre l'indirezione.

       In  ognuno dei casi sotto riportati, parola è soggetta a espansione della tilde, espansione di parametro,
       sostituzione di comando ed espansione aritmetica.

       Quando non sta effettuando l'espansione della  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}
                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}
              Substring Expansion. Expands to up to length characters of the value of parameter starting at  the
              character  specified by offset. If parameter is @ or *, an indexed array subscripted by @ or *, or
              an associative array name, the results differ as described below. If length is omitted, expands to
              the substring of the value of  parameter  starting  at  the  character  specified  by  offset  and
              extending  to  the  end of the value. length and offset are arithmetic expressions (see ARITHMETIC
              EVALUATION below).

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

              If parameter is @ or *, the result is length positional parameters beginning at offset. A negative
              offset is taken relative to one greater than the greatest positional parameter, so an offset of -1
              evaluates to the last positional parameter. It is an expansion error  if  length  evaluates  to  a
              number less than 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}
       ${parameter//pattern/string}
       ${parameter/#pattern/string}
       ${parameter/%pattern/string}
              Pattern substitution. The pattern is expanded to produce a pattern just as in pathname  expansion.
              Parameter  is expanded and the longest match of pattern against its value is replaced with string.
              string undergoes tilde expansion, parameter and variable expansion, arithmetic expansion,  command
              and  process  substitution,  and  quote  removal. The match is performed using the rules described
              under Pattern Matching below. In the first form above, only the first match is replaced. If  there
              are  two  slashes separating parameter and pattern (the second form above), all matches of pattern
              are replaced with string. If pattern is preceded by # (the third form above), it must match at the
              beginning of the expanded value of parameter. If pattern is preceded by % (the fourth form above),
              it must match at the end of the expanded value of parameter. If the expansion of string  is  null,
              matches  of  pattern  are  deleted.  If  string  is null, matches of pattern are deleted and the /
              following pattern may be omitted.

              If the patsub_replacement shell option is enabled using shopt, any  unquoted  instances  of  &  in
              string are replaced with the matching portion of pattern.

              Quoting  any part of string inhibits replacement in the expansion of the quoted portion, including
              replacement strings stored in shell variables. Backslash will escape & in string; the backslash is
              removed in order to permit a literal & in the replacement string. Backslash can also  be  used  to
              escape  a  backslash; \\ results in a literal backslash in the replacement. Users should take care
              if  string  is  double-quoted  to  avoid  unwanted  interactions   between   the   backslash   and
              double-quoting,  since  backslash  has  special meaning within double quotes. Pattern substitution
              performs the check for unquoted & after expanding  string;  shell  programmers  should  quote  any
              occurrences  of & they want to be taken literally in the replacement and ensure any instances of &
              they want to be replaced are unquoted.

              If the nocasematch shell option is enabled, the match is performed without regard to the  case  of
              alphabetic  characters.  If  parameter  is  @  or *, the substitution operation is applied to each
              positional parameter in turn, and the expansion is the resultant list. If parameter  is  an  array
              variable  subscripted  with  @  or  *, the substitution operation is applied to each member of the
              array in turn, and the expansion is the resultant list.

       ${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}
              Trasformazione di parametro. L'espansione è  o  una  trasformazione  del  valore  di  parametro  o
              un'informazione su parametro stesso, a seconda del valore di  operatore. Ogni operatore è una sola
              lettera:

              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      The  expansion  is  a string that is the value of parameter with backslash escape sequences
                     expanded as with the $'...' quoting mechanism.
              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.
              k      Like  the  K  transformation,  but  expands  the keys and values of indexed and associative
                     arrays to separate words after word splitting.

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

       Il vecchio comando  $[expression]  è deprecato e verrà rimosso nelle prossime versioni di bash.

       The expression undergoes the same expansions as if  it  were  within  double  quotes,  but  double  quote
       characters  in expression are not treated specially and are removed. All tokens in the expression undergo
       parameter and variable expansion, command substitution, and quote removal. The result is treated  as  the
       arithmetic expression to be evaluated. Arithmetic expansions may be nested.

       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
       La  sostituzione  di  processo consente di far riferimento a un input o a un output di processo usando un
       nome-file. Essa prende la forma di <(lista) o >(lista). La lista  di  processi  è  eseguita  in  modalità
       asincrona,  e  il  suo  input  o  output  appare come un nome-file. Il nome di questo file è passato come
       argomento al comando corrente come risultato dell'espansione. Se è usata la forma >(lista), la  scrittura
       sul  file  fornisce  input  per  la  lista.  Se è usata la forma <(lista), il file passato come argomento
       dovrebbe essere letto per ottenere l'output di lista. La sostituzione di processo è supportata su sistemi
       che supportano  le named pipe (FIFO) o il metodo /dev/fd per denominare i file aperti.

       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. Note that when using range expressions like [a-z] (see below), letters of
       the other case may be included, depending on the setting of  LC_COLLATE.  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. In order to match the filenames “.” and “..”,
       the pattern must begin with “.” (for example, “.?”), even if dotglob is set. If  the  globskipdots  shell
       option  is  enabled, the filenames “.” and “..” are never matched, even if the pattern begins with a “.”.
       When not matching pathnames, 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, globskipdots, failglob, and dotglob shell options.

       La variabile di shell GLOBIGNORE può  essere  usata  per  restringere  la  serie  di  nomi  di  file  che
       corrispondono  a  un modello. Se GLOBIGNORE è impostato, ogni nome di file da confrontare che corrisponde
       anche a uno dei modelli in GLOBIGNORE è rimosso dalla lista dei nomi che corrispondono al modello.  Se  è
       impostata  l'opzione  nocaseglob  , il confronto coi modelli in GLOBIGNORE è effettuata senza distinzione
       tra minuscole e maiuscole. I nomifile “.” e “..” sono sempre ignorati quando GLOBIGNORE è impostato e non
       nullo. Comunque, impostare GLOBIGNORE a un valore non nullo ha l'effetto di abilitare l'opzione di  shell
       dotglob,  così  da  cercare  una corrispondenza con tutti gli altri nomifile che iniziano con un “.”. Per
       ottenere il comportamento (usato in precedenti versioni) di ignorare i nomifile che iniziano con “.”,  si
       deve  fare  un  modello  “.*”  in  GLOBIGNORE.  L'opzione  dotglob è disabilitata quando GLOBIGNORE viene
       annullato. Il modello di ricerca rispetta l'impostazione dell'opzione di shell extglob.

       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, and the characters included
                     in the range, are 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.

       If the extglob shell option is enabled using the shopt builtin, the  shell  recognizes  several  extended
       pattern  matching  operators.  In  the  following  description,  a  pattern-list is a list of one or more
       patterns separated by a |. Composite  patterns  may  be  formed  using  one  or  more  of  the  following
       sub-patterns:

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

       Theextglob  option  changes  the  behavior  of  the parser, since the parentheses are normally treated as
       operators with syntactic meaning. To ensure that extended matching patterns are  parsed  correctly,  make
       sure that extglob is enabled before parsing constructs containing the patterns, including shell functions
       and command substitutions.

       When  matching  filenames, the dotglob shell option determines the set of filenames that are tested: when
       dotglob is enabled, the set of filenames includes all files beginning with “.”, but “.” and “..” must  be
       matched by a pattern or sub-pattern that begins with a dot; when it is disabled, the set does not include
       any  filenames beginning with “.” unless the pattern or sub-pattern begins with a “.”. As above, “.” only
       has a special meaning when matching filenames.

       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

       Before a command is executed, its input and output may be redirected using a special notation interpreted
       by the shell. Redirection allows commands' file handles to be duplicated, opened, closed, made  to  refer
       to  different  files, and can change the files the command reads from and writes to. Redirection may also
       be used to modify file handles in the current shell  execution  environment.  The  following  redirection
       operators  may  precede  or appear anywhere within a simple command or may follow a command. Redirections
       are processed in the order they appear, from left to right.

       Each redirection that may be preceded by a file descriptor number may instead be preceded by  a  word  of
       the  form  {varname}.  In  this  case,  for  each redirection operator except >&- and <&-, the shell will
       allocate a file descriptor greater than or equal to 10 and assign  it  to  varname.  If  >&-  or  <&-  is
       preceded  by  {varname},  the  value  of  varname  defines  the file descriptor to close. If {varname} is
       supplied, the redirection persists beyond the scope of the command,  allowing  the  shell  programmer  to
       manage the file descriptor's lifetime manually. The varredir_close shell option manages this behavior.

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

       Si noti che il comando incorporato e exec  può fare ridirezioni che hanno effetto nella shell corrente.

   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.

       There  is  no mechanism for using arguments in the replacement text. If arguments are needed, use a shell
       function (see FUNCTIONS below).

       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  (local  variables).
       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).

       In  the  following  description,  the  current  scope is a currently- executing function. Previous scopes
       consist of that function's caller and so on, back to the "global" scope, where the shell is not executing
       any shell function. Consequently, a local variable at the current scope is a variable declared using  the
       local or declare builtins in the function that is currently executing.

       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.

       Per esempio, se una variabile locale var è dichiarata come locale in una funzione  func1, e  func1 chiama
       un'altra  funzione   func2,  i  riferimenti   a  var  fatti  dall'interno di  func2 si risolveranno nella
       variabile locale definita in func1, oscurando qualsiasi variabile globale denominata 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  (appearing  as
       unset)   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 (see
       below how the localvar_unset shell option changes this behavior).

       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.

       Function names and definitions may be listed with the  -f  option  to  the  declare  or  typeset  builtin
       commands.  The  -F  option  to  declare  or typeset will list the function names only (and optionally the
       source file and line number, if the extdebug shell option is enabled). Functions may be exported so  that
       child shell processes (those created when executing a separate shell invocation)  automatically have them
       defined  with  the  -f  option  to  the export builtin. A function definition may be deleted using the -f
       option to the unset builtin.

       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.

       Le costanti intere seguono la definizione  del  linguaggio  C,  senza  suffissi  o  o  costanti  di  tipo
       carattere.  Le  costanti che iniziano per 0 sono interpretate come numeri ottali. Uno 0x o 0X iniziale si
       usa per indicare numeri esadecimali. Altrimenti, i numeri prendono la forma  [base#]n,  dove  l'opzionale
       base   è  un  numero  decimale  tra  2 e 64 che definisce la base aritmetica, e n è un numero espresso in
       quella base. Se base# è omessa, è usata la base 10. Quando si specifica n, se è richesto un carattere che
       non sia una cifra, le cifre maggiori di 9 sono  rappresentate  dalle  lettere  minuscole,  dalle  lettere
       maiuscole,  e  da  @  e  _,  in  quest'ordine.  Se la base è minore o uguale a 36, le lettere minuscole e
       maiuscole possono essere usate indifferentemente per rappresentare numeri compresi tra 10 e 35.

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

ESPRESSIONI CONDIZIONALI

       Le  espressioni  condizionali  sono  usate dal comando composto [[ e dai comandi incorporati test e [ per
       verificare attributi di file ed 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-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

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

       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.

       If no command name results, the variable assignments affect the current shell environment. In the case of
       such a command (one that consists only of assignment statements and redirections), assignment  statements
       are  performed before redirections. Otherwise, the variables are added to the environment of the executed
       command and do not affect the current shell environment. If any of the assignments attempts to  assign  a
       value to a readonly variable, an error occurs, and the command exits with a non-zero status.

       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.

       If this execution fails because the file is not in executable format, and the file is not a directory, it
       is  assumed  to be a shell script, a file containing shell commands, and the shell creates a new instance
       of itself to execute it. This subshell reinitializes itself, so that the effect is as if a new shell  had
       been  invoked  to  handle the script, with the exception that the locations of commands remembered by the
       parent (see hash below under SHELL BUILTIN COMMANDS)  are retained by the child.

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

       A subshell is a copy of the shell process.

       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.

       The exit status of the last command is available in the special parameter $?.

       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.

       When job control is not enabled, and bash is waiting for a foreground  command  to  complete,  the  shell
       receives  keyboard-generated  signals such as SIGINT (usually generated by ^C) that users commonly intend
       to send to that command. This happens because the shell and the command are in the same process group  as
       the terminal, and ^C sends SIGINT to all processes in that process group.

       When  bash  is  running  without  job  control enabled and receives SIGINT while waiting for a foreground
       command, it waits until that foreground command terminates and then decides what to do about the SIGINT:

       1.     If the command terminates due to the SIGINT, bash concludes that the user meant to end the  entire
              script, and acts on the SIGINT (e.g., by running a SIGINT trap or exiting itself);

       2.     If the command does not terminate due to SIGINT, the program handled the SIGINT itself and did not
              treat  it  as  a fatal signal. In that case, bash does not treat SIGINT as a fatal signal, either,
              instead assuming that the SIGINT was used as part of the program's normal operation  (e.g.,  emacs
              uses  it to abort editing commands) or deliberately discarded. However, bash will run any trap set
              on SIGINT, as it does with any other trapped signal it  receives  while  it  is  waiting  for  the
              foreground command to complete, for compatibility.

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

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

       La  semplice  menzione di un job può essere usata per riportarlo in 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.

       Quando la shell è in attesa di un job o  di  un  processo  usando  il  comando  incorporato   wait  e  il
       job-control  è  abilitato,   wait  ritornerà  lo  stato  di completamento quando il job cambia stato. Con
       l'opzione  -f wait attende finché il job o il processo termina prima di ritornare.

STRINGHE DI PROMPT

       Quando eseguita interattivamente, bash mostra il prompt primario PS1  quando  è  pronta  per  leggere  un
       comando,  e  il  prompt  secondario PS2 quando è in attesa di altro input per completare un comando. Bash
       mostra PS0 dopo aver letto un comando ma prima di eseguirlo. Bash mostra PS4 come descritto  sopra  prima
       di  tracciare  ciascun  comando  quando  è abilitata l'opzione -x. Bash permette di personalizzare queste
       stringhe di prompt inserendo un certo numero di caratteri speciali preceduti dalla barra inversa che sono
       decodificati come segue:
              \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     the  value  of the PWD shell variable ($PWD), with $HOME abbreviated with a tilde (uses the
                     value of the PROMPT_DIRTRIM variable)
              \W     the basename of $PWD, with $HOME abbreviated with a 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

       Il  numero  del  comando  e  il  numero  nella  cronologia  sono generalmente differenti: il numero della
       cronologia di un comando è la sua posizione nella lista della cronologia, la quale può includere  comandi
       preesistenti  nel  file  di cronologia (si veda CRONOLOGIA più avanti), mentre il numero del comando è la
       posizione nella sequenza dei comandi eseguiti durante la corrente sessione di shell. Dopo che la  stringa
       è  decodificata,  essa  è  espansa  attraverso  l'espansione  di  parametro,  la sostituzione di comando,
       l'espansione aritmetica e la rimozione dei caratteri di quotatura, secondo quanto specificato dal  valore
       dell'opzione  di  shell  promptvars  (si  veda  più  avanti  la  descrizione del comando shopt in COMANDI
       INCORPORATI DELLA SHELL). Questo può avere degli  effetti  collaterali  indesiderati  se  porzioni  della
       stringa  protette  appaiono  all'interno  di  una sostituzione di comando o contengono caratteri speciali
       all'espansione di parola.

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  è personalizzata inserendo comandi in un file di inizializzazione (il file inputrc). Il nome di
       questo file è preso dal valore della variabile INPUTRC. Se questa variabile  non  è  definita  il  valore
       predefinito  è ~/.inputrc. Se quel file non esiste o non può essere letto, il valore predefinito ultimo è
       /etc/inputrc. Quando un programma che usa la libreria readline viene avviato,  viene  letto  il  file  di
       inizializzazione,  e  vengono  impostate  le associazioni di tasti e assegnate le variabili. Ci sono solo
       alcuni costrutti base consentiti nel file d'inizializzazione di readline. Le righe vuote  sono  ignorate.
       Le  righe  che  iniziano  con  un  #  sono  commenti.  Le  righe che iniziano con un $ indicano costrutti
       condizionali. Le altre righe indicano associazioni di tasti e impostazioni di variabili.

       Le associazioni di tasti 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
       o usando il comando incorporato bind (si veda COMANDI INCORPORATI DELLA SHELL più avanti).

       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:

       active-region-start-color
              A  string  variable  that  controls  the text color and background when displaying the text in the
              active region (see the description of enable-active-region below). This string must  not  take  up
              any  physical  character  positions  on  the display, so it should consist only of terminal escape
              sequences. It is output to the terminal before displaying the text  in  the  active  region.  This
              variable  is  reset  to the default value whenever the terminal type changes. The default value is
              the string that puts the terminal in standout mode,  as  obtained  from  the  terminal's  terminfo
              description. A sample value might be "\e[01;33m".
       active-region-end-color
              A  string  variable  that  "undoes" the effects of active-region-start-color and restores "normal"
              terminal display appearance after displaying text in the active region. This string must not  take
              up  any  physical character positions on the display, so it should consist only of terminal escape
              sequences. It is output to the terminal after displaying the  text  in  the  active  region.  This
              variable  is  reset  to the default value whenever the terminal type changes. The default value is
              the string that restores the terminal from standout mode, as obtained from the terminal's terminfo
              description. A sample value might be "\e[0m".
       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)
              Se  impostato  a  On,  readline  tenta di muovere rapidamente il cursore verso una paretesi aperta
              quando è inserita una parentesi chiusa.
       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. If there is a color definition in $LS_COLORS for the custom suffix
              "readline-colored-completion-prefix",  readline  uses  this color for the common prefix instead of
              its default.
       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)
              Il numero di colonne sullo schermo per visualizzare le possibili corrispondenze quando si effettua
              il completamento. Il valore è ignorato se è minore di 0 o maggiore della dimensione dello schermo.
              Con un valore di 0 viene visualizzata una corrispondenza per riga. Il valore predefinito è -1.
       completion-ignore-case (Off)
              Se  impostato  a  On,  readline  effettua  l'individuazione dei nomi-file e il completamento senza
              distinguere le lettere maiuscole dalle lettere minuscole.
       completion-map-case (Off)
              Se impostato a On, e completion-ignore-case è abilitato,  readline  tratta  i  trattini  (-)  e  i
              trattini  bassi (_) come equivalenti quando effettua una ricerca e completamento di nomifile senza
              distinzione di minuscolo/maiuscolo.
       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. A zero value means readline should never ask; negative values are treated
              as zero.
       convert-meta (On)
              If set to On, readline will convert characters with the eighth bit set to an ASCII key sequence by
              stripping the eighth bit and prefixing an escape character (in effect, using escape  as  the  meta
              prefix).  The  default  is  On,  but  readline will set it to Off if the locale contains eight-bit
              characters. This variable is dependent on the LC_CTYPE locale category,  and  may  change  if  the
              locale is changed.
       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-active-region (On)
              The point is the current cursor position, and mark refers to a saved  cursor  position.  The  text
              between the point and mark is referred to as the region. When this variable is set to On, readline
              allows  certain  commands  to  designate the region as active. When the region is active, readline
              highlights the text in the region using the value of the active-region-start-color, which defaults
              to the string that enables the terminal's standout mode. The active region shows the text inserted
              by bracketed-paste and  any  matching  text  found  by  incremental  and  non-incremental  history
              searches.
       enable-bracketed-paste (On)
              When set to On, readline configures the terminal 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 prevents readline from executing  any  editing  commands  bound  to  key  sequences
              appearing in the pasted text.
       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)
              Quando  impostato a On, richiede a readline di usare una sola riga per la visualizzazione, facendo
              scorrere l'input in orizzontale su una sola riga dello schermo quando essa risulti più lunga della
              larghezza dello schermo, invece che  andando  a  capo  su  una  nuova  riga.  Qust'impostazione  è
              abilitata automaticamente nei terminali di altezza 1.
       input-meta (Off)
              If set to On, readline will enable eight-bit input (that is, it will not strip the eighth bit from
              the  characters  it  reads),  regardless  of  what  the  terminal  claims it can support. The name
              meta-flag is a synonym for this variable. The default is Off, but readline will set it  to  On  if
              the  locale  contains  eight-bit  characters.  This  variable  is dependent on the LC_CTYPE locale
              category, and may change if the locale is changed.
       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-file. Se impostata a Off,  il
              `.' iniziale dev'essere fornito dall'utente come parte del nome-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)
              If set to On, readline will display characters with the eighth bit set directly rather than  as  a
              meta-prefixed  escape  sequence.  The default is Off, but readline will set it to On if the locale
              contains eight-bit characters. This variable is dependent on the LC_CTYPE locale category, and may
              change if the locale is changed.
       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-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-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)
              Pulisce  lo  schermo,  poi  riproduce  la  riga  corrente, lasciando la riga corrente in cima allo
              schermo. Con un argomento, rilegge la riga corrente senza ripulire lo schermo.
       redraw-current-line
              Rinfresca la riga corrente.

   Comandi per manipolare la cronologia
       accept-line (Newline, Return)
              Accetta la riga senza curarsi di dove sia il cursore. Se questa riga non è vuota, è aggiunta  alla
              lista  della cronologia in accordo con lo stato della variabile HISTCONTROL. Se la riga è una riga
              di cronologia modificata, allora ripristina la riga di cronologia al suo stato originale.
       previous-history (C-p)
              Prende il precedente comando dalla lista della cronologia, 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.
       operate-and-get-next (C-o)
              Accetta la riga corrente per l'esecuzione e prende dalla cronologia la riga  successiva  a  quella
              corrente,  per  la  modifica.  Un  argomento  numerico,  se  presente,  specifica l'elemento della
              cronologia da usare al posto della riga corrente.
       fetch-history
              With a numeric argument, fetch that entry from the history list and  make  it  the  current  line.
              Without an argument, move back to the first entry in the history list.
       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.
       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''. If this character
              is read when there are no characters on the line, and point is  at  the  beginning  of  the  line,
              readline interprets it as the end of input and returns 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-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-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-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-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-])
              A character is read and point is moved to the  next  occurrence  of  that  character.  A  negative
              argument searches for previous occurrences.
       character-search-backward (M-C-])
              A  character  is  read and point is moved to the previous occurrence of that character. A negative
              argument searches for subsequent occurrences.
       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.
       spell-correct-word (C-x s)
              Perform spelling correction on the current word, treating it as a directory or  filename,  in  the
              same  way  as  the  cdspell  shell  option.  Word  boundaries  are  the  same  as  those  used  by
              shell-forward-word.
       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-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.

       Per prima cosa viene identificato il nome del comando. Se la  parola  del  comando  è  la  stringa  vuota
       (completamento tentato all'inizio di una riga vuota), viene usato ogni compspec definito con l'opzione -E
       di  complete.  Se  un comspec è stato definito per quel comando, il comspec è usato per generare la lista
       dei possibili completamenti per la parola. Se il nome del comando è un percorso completo di  file,  viene
       ricercato  per  primo  un  comspec  per  il percorso completo. Se non viene trovato nessun comspec per il
       percorso completo viene fatto un tentativo per trovare un comspec per la porzione che segue la barra  [/]
       finale.  Se  queste  ricerche  non  risultano  in un compspec, viene usato come predefinito ogni compspec
       definito con l'opzione -D di complete. Se  non  c'è  un  comspec  predefinito,  bash  tenta  l'espansione
       dell'alias  sulla  parola di comando come ultima alternativa, e tenta di trovare un comspec per la parola
       di comando da ogni espansione andata a buon fine.

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

       All'avvio, la cronologia  è  inizializzata  dal  file  indicato  dalla  variabile  HISTFILE  (predefinita
       ~/.bash_history).  Il  file  indicato dal valore di HISTFILE viene troncato, se necessario, per contenere
       non più del numero di righe specificate dal valore di HISTFILESIZE. Se HISTFILESIZE non  è  impostata,  o
       impostata  a  null,  a  un valore non numerico o a un valore minore di zero, il file della cronologia non
       viene troncato. Quando viene letto il file della cronologia, le righe che iniziano con  un  carattere  di
       commento,  seguito  immediatamente  da una cifra, sono interpretate come marcatura oraria per la riga che
       segue. Queste informazioni di data e ora vengono visualizzate opzionalmente a seconda  del  valore  della
       variabile  HISTTIMEFORMAT.  Quando  una shell con la cronologia abilitata esce, le ultime $HISTSIZE righe
       vengono copiate dalla lista della cronologia su $HISTFILE. Se l'opzione di shell histappend  è  abilitata
       (si  veda  la  descrizione  di  shopt sotto COMANDI INCORPORATI DELLA SHELL più avanti), le righe vengono
       accodate al file della cronologia, in caso contrario il file  della  cronologia  viene  sovrascritto.  Se
       HISTFILE non è impostato o il file della cronologia è non scrivibile, la cronologia non viene salvata. Se
       la  variabile  HISTTIMEFORMAT  è  impostata, le informazioni di data e ora vengono scritte nel file della
       cronologia, contrassegnate col carattere di commento  della  cronologia,  in  modo  da  venir  preservate
       durante  le  sessioni  di  shell. Il carattere di commento viene usato per distinguere le informazioni di
       data e ora dalle altre righe. Dopo il salvataggio della cronologia il file della  cronologia  è  troncato
       per  contenere  non  più di HISTFILESIZE righe. Se HISTFILESIZE non è impostata, o impostata a null, a un
       valore non numerico o a un valore numerico minore di zero, il file della cronologia non viene troncato.

       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.

       L'espansione della cronologia è effettuata immediatamente dopo che una riga completa è stata letta, prima
       che la shell la divida in parole, ed è effettuata su ciascuna riga  senza  tener  conto  delle  quotatute
       sulle  righe  precedenti.  Essa  ha luogo in due parti. La prima è per determinare quale riga dall'elenco
       della cronologia usare durante la sostituzione. La seconda è per selezionare  parti  di  quella  riga  da
       includere nella riga corrente. La riga selezionata dalla cronologia è l'evento, e la parte di quella riga
       su  cui  si  agisce  sono  le  parole.  Diversi  modificatori  sono  disponibili per manipolare le parole
       selezionate. La riga è spezzata in parole allo stesso modo di quando è  letta  in  input,  così  che  più
       parole  separate  da  metacaratteri  circondate  da caratteri di quotatura sono considerate come una sola
       parola. Le espansioni della cronologia iniziano con la comparsa  di  un  carattere  di  espansione  della
       cronologia,  che  è  !  in  modo predefnito. Solo la barra inversa (\) e gli apostrofi possono quotare il
       carattere di espansione della cronologia, ma il carattere di espansione della cronologia è trattato  come
       quotato se esso precede immediatamente le virgolette di chiusura in una stringa tra virgolette.

       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[?]
              Designa il comando più recente che precede la posizione corrente nell'elenco della cronologia  che
              contiene  stringa.  Il ? finale può essere omesso se stringa è seguita immediatamente da un codice
              di fine riga (newline). Se stringa manca, viene usata la stringa dalla ricerca più recente;  è  un
              errore se non ci sono precedenti stringhe di ricerca.
       ^stringa1^stringa2^
              Sostituzione rapida. Ripete il comando precedente, rimpiazzando stringa1 con stringa2. Equivalente
              a “!!:s^stringa1^stringa2^”  (si veda Modificatori più avanti).
       !#     L'intera riga di comando battuta fino a questo punto.

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

       0 (zero)
              La parola numero zero. Per la shell, questa è la parola che 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.
       %      La  prima  parola che combacia con `?stringa?' nella più recente ricerca, se la stringa di ricerca
              inizia con un carattere che è parte di una parola .
       x-y    Un intervallo di parole; `-y' abbrevia `0-y'.
       *      Tutte le parole tranne la numero zero. Questo è un sinonimo per `1-$'. Non è un errore usare *  se
              vi è solo una parola nell'evento; in quel caso il risultato è una stringa vuota.
       x*     Abbrevia x-$.
       x-     Abbrevia x-$ come x*, ma omette l'ultima parola. Se manca x , il valore predefinito è 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-file, lasciando solo la testa.
       t      Rimuove tutti i componenti iniziali in un nome-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      Quota le parole sostituite, come con q, ma spezza in parole sui blank e newline. I modificatori  q
              e x sono mutualmente esclusivi; viene usato l'ultimo fornito.
       s/vecchio/nuovo/
              Sostituisce  nuovo  alla prima occorrenza di vecchio nella riga di evento. Qualsiasi carattere può
              essere usato come delimitatore al posto di /.  Il  delimitatore  finale  è  opzionale  se  esso  è
              l'ultimo carattere della riga di evento. Il delimitatore può essere quotato in vecchio e nuovo con
              una  singola barra inversa. Se compare & in nuovo, esso è sostituito da vecchio. Una barra inversa
              singola quota il carattere &. Se vecchio è nullo, viene impostato all'ultimo vecchio sostituito o,
              se nessuna sostituzione di cronologia è avvenuta, l'ultima stringa in una ricerca di  !?string[?].
              Se nuovo è nullo, ogni corrispondenza di vecchio viene cancellata.
       &      Ripete la precedente sostituzione.
       g      Fa  sì che i cambiamenti siano applicati sull'intera riga di evento. Questo si usa in congiunzione
              con `:s' (p.es., `:gs/vecchio/nuovo/') o `:&'. Se  usato  con  `:s',  qualsiasi  delimitatore  può
              essere  usato  al  posto  di /, e il delimitatore finale è opzionale se è l'ultimo carattere della
              riga di evento. Un a può essere usato come sinonimo di g.
       G      Applica il modificatore che segue `s'  o `&'  una volta a ogni parola nella riga di evento.

COMANDI INCORPORATI DELLA SHELL

       Se non diversamente indicato, ogni comando incorporato documentato in questa sezione,  il  quale  accetti
       opzioni  precedute  da  -,  accetta -- per indicare la fine delle opzioni. 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.

        .  nome-file [argomenti]
       source nome-file [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, but  filename  does  not  need  to  be
              executable.  The file searched for in PATH need not be executable. When bash is not in posix mode,
              it searches the current directory 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, . inherits any trap on DEBUG; if it is not, any  DEBUG
              trap  string  is  saved  and  restored  around the call to ., and . 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 . 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 nome-file
       bind [-m keymap] -x keyseq:comando di shell
       bind [-m keymap] keyseq:nome-funzione
       bind [-m mappa-tasti] sequenza-tasti:comando readline
       bind readline-command-line
              Display  current readline key and function bindings, bind a key sequence to a readline function or
              macro, or set a readline variable. Each non-option argument is a command as it would appear  in  a
              readline  initialization  file  such  as .inputrc, but each binding or command must be passed as a
              separate argument; e.g., '"\C-x\C-r": re-read-init-file'. Options, if supplied, have the following
              meanings:
              -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 nome-file
                     Legge le associazioni dei tasti dal file nome-file.
              -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. The  shell  assigns
                     any  numeric  argument the user supplied to the READLINE_ARGUMENT variable. If there was no
                     argument, that variable is not set. 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. 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.  If  the  directory  change  is
              successful,  cd sets the value of the PWD environment variable to the new directory name, and sets
              the OLDPWD environment variable to the value of the current working directory before  the  change.
              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-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 azione] [-G globpat] [-W lista_di_parole]
              [-F funzione] [-C comando] [-X filterpat] [-P prefisso] [-S suffisso] nome [nome ...]
       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.

              The  process  of  applying  these  completion  specifications when word completion is attempted is
              described above under Programmable Completion.

              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-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-file, consentendo così di effettuare
                              qualsiasi elaborazione di uno specifico nome-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-file  (la
                              quotatura dei nomi-file è il comportamento predefinito).
                      nosort  Dice  a  readline  di  non ordinare la lista dei possibili completamenti in ordine
                              alfabetico.
                      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
                      command  is  executed  in  a  subshell environment, and its output is used as the possible
                      completions. Arguments are passed as with the -F option.
              -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     Each name is an indexed array variable (see Arrays above).
              -A     Each name is an associative array variable (see Arrays above).
              -f     Usa solo nomi di funzioni.
              -i     The variable is treated as an integer; arithmetic  evaluation  (see  ARITHMETIC  EVALUATION
                     above) is performed when the variable is assigned a value.
              -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'', an attempt is
              made  to  assign  a value to a readonly variable, an attempt is made to assign a value to an array
              variable without using the compound assignment syntax (see Arrays above), one of the names is  not
              a  valid  shell  variable  name,  an  attempt  is  made to turn off readonly status for a readonly
              variable, an attempt is made to turn off array status for an array variable, or an attempt is made
              to display a non-existent function with -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 ... ]
              Senza opzioni, rimuove ogni jobspec dalla tabella dei job attivi. Se jobspec non è presente, e non
              viene fornita né l'opizone -a né l'opzione  -r,  viene  usato  il  job  corrente.  Se  viene  data
              l'opzione  -h,  ogni  jobspec non viene rimosso dalla tabella, ma è marcato in modo che SIGHUP non
              venga inviato al job se la shell riceve un SIGHUP. Se non è specificata alcuna  jobspec  l'opzione
              -a  richiede  la rimozione o il marcamento di tutti i job; l'opzione -r senza un argomento jobspec
              restringe l'operazione ai job in esecuzione. Il valore di ritorno è 0 tranne  quando  jobspec  non
              specifica un job valido.

       echo [-neE] [arg ...]
              Emette gli arg, separati da spazi, seguiti da un newline. Lo stato di ritorno è  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 nome-file] [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''. The -f option means to load the new builtin command name from shared object  filename,  on
              systems  that support dynamic loading. Bash will use the value of the BASH_LOADABLES_PATH variable
              as a colon-separated list of  directories  in  which  to  search  for  filename.  The  default  is
              system-dependent.  The  -d  option  will  delete  a  builtin previously loaded with -f. If no name
              arguments are given, or if the -p option is supplied, a list of shell builtins is printed. With no
              other option arguments, the list consists of all enabled shell builtins. If -n is  supplied,  only
              disabled  builtins are printed. If -a is supplied, the list printed includes all builtins, with an
              indication of whether or not each is enabled. If -s is supplied, the output is restricted  to  the
              POSIX  special builtins. If no options are supplied and a name is not a shell builtin, enable will
              attempt to load name from a shared object named name, as if the command were ``enable -f name name
              . The return value is 0 unless a name is not a shell builtin or there is an error  loading  a  new
              builtin from a shared object.

       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 nome [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 normalmente analizza i parametri posizionali,  ma  se  più  argomenti  vengono  dati  come
              valori arg, getopts analizza solo quelli.

              getopts può informare degli errori in due modi. Se il primo carattere di optstring è un due punti,
              è  usata un'informazione di errore silenziosa. Normalmente i messaggi diagnostici vengono stampati
              quando 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 nome-file] [-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 nome-file
              è  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 [nome-file]
       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 nome-file, 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
                     Delete the range of history entries between positions start and  end,  inclusive.  Positive
                     and negative values for start and end are interpreted as described above.
              -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.

              If the HISTTIMEFORMAT variable is set, the time stamp information  associated  with  each  history
              entry  is written to the history file, marked with the history comment character. 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 entry. The return value is 0 unless an
              invalid option is encountered, an error occurs while reading  or  writing  the  history  file,  an
              invalid  offset or range is supplied as an argument to -d, or the history expansion supplied as an
              argument to -p fails.

       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 ...]
              Each arg is an arithmetic expression to be evaluated (see ARITHMETIC  EVALUATION  above).  If  the
              last arg evaluates to 0, let returns 1; 0 is returned otherwise.

       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]
              Removes  entries  from the directory stack. The elements are numbered from 0 starting at the first
              directory listed by dirs. With no arguments, popd removes the top directory from  the  stack,  and
              changes to the new top directory. Arguments, if supplied, have the following meanings:
              -n     Sopprime  il  normale  cambiamento di directory quando rimuove directory dallo stack, ossia
                     viene manipolato solo lo stack.
              +n     Removes the nth entry counting from the left of the list shown by dirs, starting with zero,
                     from the stack. For example: ``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.

              If the top element of the directory stack is modified, and the -n option was  not  supplied,  popd
              uses  the  cd  builtin  to  change to the directory at the top of the stack. If the cd fails, popd
              returns a non-zero value.

              Otherwise, popd returns false if an invalid option is encountered, the directory stack  is  empty,
              or a non-existent directory stack entry is specified.

              If  the  popd  command  is  successful, bash runs dirs to show the final contents of the directory
              stack, and the return status is 0.

       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     fa sì che printf espanda sequenze di protezione tramite  la  barra  inversa  nell'argomento
                     corrispondente nello stesso modo di echo -e.
              %q     fa sì che printf stampi sull'output l'argomento corrispondente in un formato riutilizzabile
                     come input di shell.
              %Q     like %q, but applies any supplied precision to the argument before quoting it.
              %(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]
              Adds a directory to the top of the directory stack, or rotates the stack, making the  new  top  of
              the  stack  the current working directory. With no arguments, pushd exchanges the top two elements
              of the directory stack. Arguments, if supplied, have the following meanings:
              -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

              After the stack has been modified, if the -n option was not supplied, pushd uses the cd builtin to
              change to the directory at the top of the stack. If the cd fails, pushd returns a non-zero value.

              Otherwise, if no arguments are supplied, pushd returns 0 unless the directory stack is empty. When
              rotating  the  directory  stack,  pushd  returns  0  unless  the  directory  stack  is  empty or a
              non-existent directory stack element is specified.

              If the pushd command is successful, bash runs dirs to show the final  contents  of  the  directory
              stack.

       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, or
                     the read will return EOF, 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 option-name] [--] [-] [arg ...]
       set [+abefhkmnptuvxBCEHPT] [+o option-name] [--] [-] [arg ...]
              Without options, display the name and value of each shell variable in a format that can be  reused
              as  input  for  setting  or  resetting  the currently-set variables. Read-only variables cannot be
              reset. In posix mode, only shell variables are listed. The  output  is  sorted  according  to  the
              current  locale.  When  options  are  specified, they set or unset shell attributes. Any arguments
              remaining after option processing are treated as values for  the  positional  parameters  and  are
              assigned, in order, to $1, $2, ... $n. Options, if specified, have the following meanings:
              -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 Enable  command  history,  as  described above under HISTORY. This option is on by
                              default in interactive shells.
                      ignoreeof
                              L'effetto  è  lo  stesso  come  se  fosse  stato  eseguito  il  comando  di  shell
                              ``IGNOREEOF=10'' had been executed (see Shell Variables above).
                      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   Change  the  behavior  of  bash where the default operation differs from the POSIX
                              standard to match the standard (posix mode). See SEE ALSO below for a reference to
                              a document that details how posix mode affects bash's behavior.
                      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.
              -r      Enable restricted shell mode. This option cannot be unset once it has been set.
              -t      Esce dopo aver letto ed eseguito un comando.
              -u      Treat  unset  variables  and  parameters other than the special parameters "@" and "*", or
                      array variables subscripted with "@"  or  "*",  as  an  error  when  performing  parameter
                      expansion.  If  expansion is attempted on an unset variable or parameter, the shell prints
                      an error message, and, if not interactive, exits with a non-zero status.
              -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      The shell performs brace expansion (see Brace Expansion above). This is on by default.
              -C      Se impostato, bash non sovrascrive un file esistente con gli operatori di  ridirezione  >,
                      >&  e  <>.  Una  sovrascrittura può ancora essere ottenuta creando i file di output usando
                      l'operatore di ridirezione >| al posto di >.
              -E      Se impostato,  ogni  segnale  intercettato  ERR  è  ereditato  dalle  funzioni  di  shell,
                      sostituzioni  di  comando  e  comandi  eseguiti  in  un  ambiente  di subshell. Il segnale
                      intercettato ERR non viene normalmente ereditato in questi casi.
              -H      Abilita la sostituzione della cronologia in  stile  !.  Quest'opzione  è  attiva  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] [nome-opzione ...]
              Attiva/disattiva  i  valori  delle  impostazioni  che controllano il comportamento opzionale della
              shell. Le impostazioni possono essere o quelle elencate sotto o,  se  viene  usata  l'opzione  -o,
              quelle disponibili con l'opzione -o al comando incorporato set. Senza opzioni, o con l'opzione -p,
              viene  mostrata  una  lista  di  tutte  le  opzioni  impostabili,  con una indicazione se ognuna è
              impostata o no; se vengono forniti nomi-opzioni, l'output è ristretto a queste opzioni.  L'opzione
              -p  fa  sì  che  l'output  sia mostrato in una forma che può essere riutilizzata come input. Altre
              opzioni hanno il seguente significato:
              -s     Abilita (attiva) ogni optname.
              -u     Disabilita (disattiva) ogni optname.
              -q     Sopprime il normale output (modalità silenziosa); lo stato di ritorno indica se il  optname
                     è  attivato  o  non  attivato.  Se sono dati argomenti optname multipli con -q, lo stato di
                     ritorno è 0 se tutti gli optname sono attivati; diverso da zero altrimenti.
              -o     Restringe i valori di optname a quelli definiti per l'opzione -o  del  comando  incorporato
                     set.

              Se una delle opzioni -s o -u viene usata senza argomenti 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-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
                      If set, bash lists  the  status  of  any  stopped  and  running  jobs  before  exiting  an
                      interactive  shell.  If  any jobs are running, this causes the exit to be deferred until a
                      second exit is attempted without an intervening command (see JOB CONTROL above). The shell
                      always postpones exiting if any jobs are stopped.
              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
              compat50
                      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-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-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-file. Questo è attivo solo  quando  bash  usa  le  barre
                      inverse  per  quotare  i  nomi-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 Se  impostata,  bash  include  i  nomi-file  che  iniziano  con  un  `.'   nel   risultato
                      dell'espansione  del  percorso.  I  nomi-file  “.” e “..” devono essere sempre confrontati
                      esplicitamente, anche se dotglob è impostato.

              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
                      If set, aliases are expanded as described above under ALIASES. This option is  enabled  by
                      default for interactive shells.

              extdebug
                      Se  impostata  all'invocazione  della  shell,  o in un file di avvio della shell, provvede
                      all'esecuizone del "debugger profile" prima che la shell venga avviata, allo  stesso  modo
                      dell'opzione  --debugger.Se  impostata  dopo  l'invocazione, il comportamento previsto per
                      poter usare dei debugger è abilitato:

                      1.     L'opzione -F al comando incorporato declare mostra il nome di file di origine e  il
                             numero di riga corrispondente a ogni nome di funzione 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 and BASH_ARGV are updated as described in their descriptions above).

                      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 If  set,  the  extended pattern matching features described above under Pathname Expansion
                      are enabled.

              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
                      If  set,  the  suffixes  specified by the FIGNORE shell variable cause words to be ignored
                      when performing  word  completion  even  if  the  ignored  words  are  the  only  possible
                      completions.  See  SHELL  VARIABLES  above  for  a  description of FIGNORE. This option is
                      enabled by default.

              globasciiranges
                      If set, range expressions used  in  pattern  matching  bracket  expressions  (see  Pattern
                      Matching above) behave as if in the traditional C locale when performing comparisons. That
                      is,  the  current  locale's  collating  sequence  is not taken into account, so b will not
                      collate between A and B, and upper-case  and  lower-case  ASCII  characters  will  collate
                      together.

              globskipdots
                      If  set,  pathname  expansion  will  never  match  the filenames “.” and “..”, even if the
                      pattern begins with a “.”. This option is enabled by default.

              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
                      If  set, and readline is being used, bash will attempt to perform hostname completion when
                      a word containing a @ is being completed (see Completing under READLINE  above).  This  is
                      enabled by default.

              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
                      If set, allow a word beginning with # to cause that word and all remaining  characters  on
                      that  line  to  be  ignored  in  an interactive shell (see COMMENTS above). This option is
                      enabled by default.

              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
                      The  shell  sets this option if it is started as a login shell (see INVOCATION above). The
                      value may not be changed.

              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
                      If  set,  bash  matches  filenames  in a case-insensitive fashion when performing pathname
                      expansion (see Pathname Expansion above).

              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.

              noexpand_translation
                      If set, bash encloses the translated results of $"..." quoting in single quotes instead of
                      double quotes. If the string is not translated, this has no effect.

              nullglob
                      If set, bash allows patterns which match no files (see Pathname Expansion above) to expand
                      to a null string, rather than themselves.

              patsub_replacement
                      If set, bash expands occurrences of & in the replacement string of pattern substitution to
                      the text matched by the pattern, as described under Parameter Expansion above. This option
                      is enabled by default.

              progcomp
                      If set, the programmable completion facilities (see  Programmable  Completion  above)  are
                      enabled. This option is enabled by default.

              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
                      If  set,  prompt  strings  undergo  parameter  expansion, command substitution, arithmetic
                      expansion, and quote removal after being expanded as described in  PROMPTING  above.  This
                      option is enabled by default.

              restricted_shell
                      The  shell  sets  this  option  if  it is started in restricted mode (see RESTRICTED SHELL
                      below). The value may not be changed. This  is  not  reset  when  the  startup  files  are
                      executed, allowing the startup files to discover whether or not a shell is restricted.

              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
                      If set, the . (source) builtin uses the value of PATH to find the directory containing the
                      file supplied as an argument. This option is enabled by default.

              varredir_close
                      If set, the shell automatically closes  file  descriptors  assigned  using  the  {varname}
                      redirection  syntax  (see REDIRECTION above) instead of leaving them open when the command
                      completes.

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

       suspend [-f]
              Suspend  the execution of this shell until it receives a SIGCONT signal. A login shell, or a shell
              without job control enabled, cannot be suspended; the -f option can be used to override  this  and
              force  the  suspension. The return status is 0 unless the shell is a login shell or job control is
              not enabled and -f is not supplied.

       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
                     If the first argument is !, the expression is true if and only if the  second  argument  is
                     null.  If  the  first argument is one of the unary conditional operators listed above under
                     CONDITIONAL EXPRESSIONS, the expression is true if the unary test is  true.  If  the  first
                     argument is not a valid unary conditional operator, the expression is false.
              3 argomenti
                     The  following conditions are applied in the order listed. If the second argument is one of
                     the binary conditional operators listed above under CONDITIONAL EXPRESSIONS, the result  of
                     the  expression  is  the  result  of the binary test using the first and third arguments as
                     operands. The -a and -o operators are considered binary  operators  when  there  are  three
                     arguments.  If  the first argument is !, the value is the negation of the two-argument test
                     using the second and third arguments. If the first argument is  exactly  (  and  the  third
                     argument  is  exactly  ),  the  result  is  the  one-argument  test of the second argument.
                     Otherwise, the expression is false.
              4 argomenti
                     The following conditions are applied in the order listed. If the first argument is  !,  the
                     result  is  the  negation  of  the  three-argument  expression  composed  of  the remaining
                     arguments. the two-argument test using  the  second  and  third  arguments.  If  the  first
                     argument  is exactly ( and the fourth argument is exactly ), the result is the two-argument
                     test of the second and third arguments. Otherwise, the expression is parsed  and  evaluated
                     according to precedence using the rules listed above.
              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.

              If  a  sigspec  is  EXIT  (0)  the command arg is executed on exit from the shell. If a sigspec is
              DEBUG, the command arg is executed before every simple command, for command, case command,  select
              command,  every  arithmetic for command, and before the first command executes in a shell function
              (see SHELL GRAMMAR above). Refer to the description of the extdebug option to  the  shopt  builtin
              for  details  of its effect on the DEBUG trap. If a sigspec is RETURN, the command arg is executed
              each time a shell function or a script executed with the . or source builtins finishes executing.

              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 o
              resettati. 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]]
              Fornisce controllo sulle risorse disponibili per la shell e per i processi avviati  da  essa,  sui
              sistemi  che  consentono  un tale controllo. Le opzioni -H e -S specificano che viene impostato il
              limite hard o limite soft per la data risorsa. Un limite hard  non  può  essere  aumentato  da  un
              utente  comune  una volta impostato; un limite soft può essere aumentato fino al valore del limite
              hard. Se né -H-S sono specificati, vengono impostati entrambi i limiti, hard e soft. Il valore
              di limite può essere un numero nell'unità specificata per la risorsa, o uno  dei  valori  speciali
              hard,  soft o unlimited. che stanno rispettivamente per limite hard corrente, limite soft corrente
              e nessun limite. Se limite è omesso, viene stampato il  valore  corrente  del  limite  soft  della
              risorsa,  a meno che non venga data l'opzione -H. Quando è specificata più di una risorsa, il nome
              del limite e l'unità, se appropriati, vengono stampati prima del valore.  Le  altre  opzioni  sono
              interpretate come segue:
              -a     Sono riportati tutti i limiti correnti; nessun limite viene impostato
              -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

              Se  limite  è  dato,  e  non  viene  usata  l'opzione  -a, limite  è il nuovo valore della risorsa
              specificata. Se nessuna opzione è data, si considera impostata l'opzione  -f.  I  valori  sono  in
              multipli  di  1024 byte, tranne  che per -t, che è in secondi, -R, che è in microsecondi;-p, che è
              in unità di blocchi da 512 byte; -P, -T, -b , -k, -n e -u, che sono numeri puri e , quando si è in
              modalità posix, -c e -f, che sono in multipli di 512 byte. Lo stato di ritorno è 0  tranne  quando
              viene  incontrata  un'opzione  o un argomento non valido, o avvenga un errore mentre si imposta un
              nuovo limite.

       umask [-p] [-S] [modo]
              La maschera di creazione dei file dell'utente è impostata a modo. Se modo inizia con una cifra,  è
              interpretato come numero ottale; altrimenti è interpretato come una maschera 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
              or may not be unset.

       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. If wait  is  interrupted  by  a
              signal,  the  return status will be greater than 128, as described under SIGNALS above. Otherwise,
              the return status is the exit status of the last process or job waited for.

MODALITÀ COMPATIBILE DELLA SHELL

       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 subsequent versions).

       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
              •      gli  operatori < e > del comando condizionale [[ non considerano la localizzazione corrente
                     nel confronto fra stringhe, ma usano l'ordinamento ASCII. Le versioni di bash precedenti  a
                     bash-4.1  usano  la  collazione  ASCII e strcmp(3); bash-4.1 e versioni successive usano la
                     sequenza di collazione della localizzazione corrente e 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 (e.g., 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.

       compat51
              •      The unset builtin treats attempts to unset array subscripts @ and *  differently  depending
                     on whether the array is indexed or associative, and differently than in previous versions.

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 .

       •      specificare un nome-file contenente una  barra  obliqua  come  argomento  al  comando  incorporato
              history

       •      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

       •      turning off restricted mode with set +r or shopt -u restricted_shell.

       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.bashrc
              Il file di inizializzazione generale di sistema per ogni shell interattiva
       /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
       ~/.bash_history
              The default value of HISTFILE, the file in which bash saves the command history
       ~/.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"

       If you find a bug in bash, you should report it. But first, you should make sure that it really is a bug,
       and  that  it  appears  in  the  latest  version  of  bash.  The  latest version is always available from
       ftp://ftp.gnu.org/pub/gnu/bash/                                                                       and
       http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz.

       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    Giovanni    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.2                                    2022 September 19                                        BASH(1)