GoGPT Best VPN GoSearch

Favicon di OnWorks

bash-static - Online nel cloud

Esegui bash-static nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online di Windows o emulatore online di MAC OS

Questo è il comando bash-static che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre numerose workstation online gratuite come Ubuntu Online, Fedora Online, l'emulatore online di Windows o l'emulatore online di MAC OS

PROGRAMMA:

NOME


bash - GNU Bourne-Again SHell

SINOSSI


bash [opzioni] [stringa_comando | file]

COPYRIGHT


Bash è protetto da copyright (C) 1989-2013 dalla Free Software Foundation, Inc.

DESCRIZIONE


Bash offre sh-interprete del linguaggio di comando compatibile che esegue i comandi letti dal
input standard o da un file. Bash incorpora anche utili funzionalità del Korn e C
conchiglie (ksh e csh).

Bash è destinato ad essere un'implementazione conforme della porzione Shell e Utilities di
la specifica IEEE POSIX (IEEE Standard 1003.1). Bash può essere configurato per essere POSIX-
conforme per impostazione predefinita.

VERSIONI


Tutte le opzioni shell a carattere singolo documentate nella descrizione del set
Il comando builtin può essere utilizzato come opzione quando viene richiamata la shell. Inoltre, bash
interpreta le seguenti opzioni quando viene richiamato:

-c Se l' -c se l'opzione è presente, i comandi vengono letti dal primo non-opzione
argomento stringa_comandoSe ci sono argomenti dopo il stringa_comando, Hanno
sono assegnati ai parametri posizionali, a partire da $0.
-i Se l' -i l'opzione è presente, la shell è interattivo.
-l Make bash agire come se fosse stato invocato come shell di login (vedere INVOCAZIONE sotto).
-r Se l' -r l'opzione è presente, la shell diventa limitato (Vedi LIMITATO SHELL
sotto).
-s Se l' -s l'opzione è presente o se non rimangono argomenti dopo l'elaborazione dell'opzione,
quindi i comandi vengono letti dall'input standard. Questa opzione consente
parametri posizionali da impostare quando si richiama una shell interattiva.
-D Un elenco di tutte le stringhe tra virgolette doppie precedute da $ è stampato sullo standard
output. Queste sono le stringhe che sono soggette a traduzione linguistica quando il
le impostazioni locali correnti non sono C or POSIXCiò implica il -n opzione; nessun comando verrà
essere eseguito.
[-+]O [opzione_shopt]
opzione_shopt è una delle opzioni shell accettate da negozio incorporato (vedi
SHELL COSTRUZIONE COMANDI sotto). Se opzione_shopt è presente, -O imposta il valore di
quella opzione; +O lo disattiva. Se opzione_shopt non viene fornito, i nomi e
valori delle opzioni shell accettate da negozio sono stampati sullo standard
output. Se l'opzione di invocazione è +O, l'output viene visualizzato in un formato
che possono essere riutilizzati come input.
-- A -- segnala la fine delle opzioni e disabilita l'ulteriore elaborazione delle opzioni. Qualsiasi
argomenti dopo la -- vengono trattati come nomi di file e argomenti. Un argomento di -
è equivalente --.

Bash interpreta anche una serie di opzioni multi-carattere. Queste opzioni devono apparire su
la riga di comando prima delle opzioni a carattere singolo da riconoscere.

--debugger
Disporre l'esecuzione del profilo del debugger prima dell'avvio della shell. Attiva
modalità di debug estesa (vedere la descrizione del debug esteso opzione per il negozio
incorporato di seguito).
--dump-po-stringhe
Equivalente a -D, ma l'output è in GNU gettext po file (oggetto portatile)
formato.
--dump-stringhe
Equivalente a -D.
--Aiuto Visualizza un messaggio di utilizzo sullo standard output ed esci con successo.
--file-init filetto
--rcfile filetto
Esegui comandi da filetto invece del file di inizializzazione a livello di sistema
/etc/bash.bashrc e il file di inizializzazione personale standard ~ / .bashrc se l'
shell è interattiva (vedi INVOCAZIONE sotto).

--Accedere
Equivalente a -l.

--nessuna modifica
Non usare GNU readline libreria per leggere le righe di comando quando la shell è
interattivo.

--nessun profilo
Non leggere neanche il file di avvio a livello di sistema / etc / profile o qualsiasi altro dato personale
file di inizializzazione ~ / .bash_profile, ~/.bash_login, o ~ / .profile. Di default,
bash legge questi file quando viene richiamato come shell di login (vedere INVOCAZIONE sotto).

--Norc Non leggere ed eseguire il file di inizializzazione a livello di sistema /etc/bash.bashrc e
il file di inizializzazione personale ~ / .bashrc se la shell è interattiva. Questo
l'opzione è attiva per impostazione predefinita se la shell viene richiamata come sh.

--posix
Cambia il comportamento di bash dove l'operazione predefinita differisce da POSIX
standard per abbinare lo standard (posix modo). Vedere VEDERE ANCHE di seguito per un riferimento a
un documento che descrive in dettaglio come la modalità posix influenza il comportamento di bash.

--limitato
Il guscio diventa ristretto (vedi LIMITATO SHELL sotto).

--verboso
Equivalente a -v.

--versione
Mostra le informazioni sulla versione per questa istanza di bash sull'output standard e sull'uscita
con successo.

ARGOMENTI


Se gli argomenti rimangono dopo l'elaborazione delle opzioni e né l' -c né l' -s l'opzione è stata
fornito, si presume che il primo argomento sia il nome di un file contenente shell
comandi. Se bash viene invocato in questo modo, $0 è impostato sul nome del file e
i parametri posizionali vengono impostati sugli argomenti rimanenti. Bash legge ed esegue
comandi da questo file, quindi esce. BashLo stato di uscita di è lo stato di uscita dell'ultimo
comando eseguito nello script. Se non viene eseguito alcun comando, lo stato di uscita è 0. Un
viene prima effettuato un tentativo di aprire il file nella directory corrente e, se non viene trovato alcun file,
quindi la shell cerca le directory in PERCORSO per la sceneggiatura.

INVOCAZIONE


A accesso conchiglia è uno il cui primo carattere dell'argomento zero è un -, o uno iniziato con
, il --Accedere opzione.

An interattivo shell è una shell avviata senza argomenti non opzionali e senza -c opzione
il cui input standard e l'errore sono entrambi collegati ai terminali (come determinato da
isatt(3)), o uno è iniziato con il -i opzione. PS1 è impostato e $- inclusi i if bash is
interattivo, consentendo a uno script shell o a un file di avvio di testare questo stato.

I paragrafi seguenti descrivono come bash esegue i suoi file di avvio. Se uno qualsiasi dei
i file esistono ma non possono essere letti, bash segnala un errore. Le tilde vengono espanse nei nomi dei file
come descritto di seguito sotto tilde Espansione nella ESPANSIONE .

Quando bash viene richiamato come shell di login interattiva o come shell non interattiva con
--Accedere opzione, prima legge ed esegue i comandi dal file / etc / profile, se quello
il file esiste. Dopo aver letto quel file, cerca ~ / .bash_profile, ~/.bash_logine
~ / .profile, in quest'ordine, e legge ed esegue i comandi dal primo che esiste
ed è leggibile. Il --nessun profilo l'opzione può essere utilizzata quando la shell viene avviata per inibire
questo comportamento.

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

Quando viene avviata una shell interattiva che non è una shell di login, bash legge ed esegue
comandi da /etc/bash.bashrc e ~ / .bashrc, se questi file esistono. Questo potrebbe essere inibito
tramite la configurazione di ricerca --Norc opzione. Il --rcfile filetto l'opzione forzerà bash leggere ed eseguire
comandi da filetto invece di /etc/bash.bashrc e ~ / .bashrc.

Quando bash viene avviato in modo non interattivo, per eseguire uno script shell, ad esempio, cerca
la variabile BASH_ENV nell'ambiente, espande il suo valore se appare lì, e usa
il valore espanso come nome di un file da leggere ed eseguire. Bash si comporta come se il
sono stati eseguiti i seguenti comandi:
se [ -n "$BASH_ENV" ]; allora . "$BASH_ENV"; fi
ma il valore del PERCORSO la variabile non viene utilizzata per cercare il nome del file.

If bash viene invocato con il nome sh, cerca di imitare il comportamento di avvio storico
versioni di sh il più fedelmente possibile, pur rispettando lo standard POSIX.
Quando richiamato come shell di login interattiva o shell non interattiva con --Accedere
opzione, tenta prima di leggere ed eseguire i comandi da / etc / profile e ~ / .profile,
in quest'ordine. Il --nessun profilo L'opzione può essere utilizzata per inibire questo comportamento. Quando richiamata
come una shell interattiva con il nome sh, bash cerca la variabile ENV, espande il suo
valore se è definito e utilizza il valore espanso come nome di un file da leggere e
eseguire. Poiché una shell invocata come sh non tenta di leggere ed eseguire comandi da
qualsiasi altro file di avvio, il --rcfile l'opzione non ha effetto. Una shell non interattiva
invocato con il nome sh non tenta di leggere altri file di avvio. Quando richiamato
as sh, bash entra posix modalità dopo la lettura dei file di avvio.

Quando bash è iniziato in posix modalità, come con il --posix opzione della riga di comando, segue
lo standard POSIX per i file di avvio. In questa modalità, le shell interattive espandono il ENV
variabile e i comandi vengono letti ed eseguiti dal file il cui nome è l'espanso
valore. Non vengono letti altri file di avvio.

Bash tenta di determinare quando viene eseguito con il suo input standard collegato a un
connessione di rete, come quando eseguita dal demone shell remoto, di solito rshdo
demone shell sicuro sshd. Se bash determina che viene eseguito in questo modo, si legge
ed esegue i comandi da ~ / .bashrc e ~ / .bashrc, se questi file esistono e sono leggibili.
Non lo farà se invocato come sh. --Norc l'opzione può essere utilizzata per inibire questo
comportamento e il --rcfile l'opzione può essere utilizzata per forzare la lettura di un altro file, ma
nessuno dei due rshdsshd in genere richiamare la shell con quelle opzioni o consentire loro di essere
specificato.

Se la shell viene avviata con l'ID utente (gruppo) effettivo diverso dall'ID utente reale
(gruppo) id e il -p l'opzione non è fornita, nessun file di avvio viene letto, funzioni shell
non sono ereditati dall'ambiente, il CONCHIGLIE, BASHOTS, CDPATHe GLOBIGNORE
le variabili, se appaiono nell'ambiente, vengono ignorate e l'ID utente effettivo è
impostato sull'ID utente reale. Se il -p l'opzione viene fornita all'invocazione, il comportamento di avvio
è lo stesso, ma l'ID utente effettivo non viene reimpostato.

DEFINIZIONI


Le seguenti definizioni sono utilizzate nel resto del documento.
vuoto Uno spazio o una tabulazione.
parola Una sequenza di caratteri considerata come un'unica unità dalla shell. Noto anche come
token.
Nome A parola costituito solo da caratteri alfanumerici e caratteri di sottolineatura, e che inizia
con un carattere alfabetico o un trattino basso. Chiamato anche identificatore.
metacarattere
Carattere che, se non tra virgolette, separa le parole. Uno dei seguenti:
| & ; ( ) < > spazio linguetta
di controllo operatore
A token che svolge una funzione di controllo. È uno dei seguenti simboli:
|| & && ; ;; ( ) | |&

RISERVATO PAROLE


RISERVATO parole sono parole che hanno un significato speciale per la conchiglia. Le seguenti parole
sono riconosciuti come riservati quando non sono quotati e sono la prima parola di un comando semplice
(Vedi SHELL GRAMMATICA sotto) o la terza parola di un Custodie or da comando:

! Custodie coprocesso do fatto Elif altro che C fi da funzione if in select poi fino a quando while { }
tempo [[ ]]

SHELL GRAMMATICA


Semplice Comandi
A semplice command è una sequenza di assegnazioni di variabili facoltative seguite da vuoto-
parole separate e reindirizzamenti, e terminati da un di controllo operatoreLa prima parola
specifica il comando da eseguire e viene passato come argomento zero. Le parole rimanenti
vengono passati come argomenti al comando richiamato.

Il valore di ritorno di un semplice command è il suo stato di uscita, o 128+n se il comando è
terminato dal segnale n.

Condotte
A conduttura è una sequenza di uno o più comandi separati da uno degli operatori di controllo
| or |&Il formato di una pipeline è:

[tempo [-p]] [ ! ] command [ [||&] command2 ...]

L'uscita standard di command è collegato tramite un pipe all'input standard di command2.
Questa connessione viene eseguita prima di qualsiasi reindirizzamento specificato dal comando (vedere
REINDIRIZZAZIONE sotto). Se |& si usa, commandl'errore standard, oltre al suo standard
uscita, è collegato a command2l'input standard di attraverso il pipe; è l'abbreviazione di
2> e 1 |Questo reindirizzamento implicito dell'errore standard all'output standard è
eseguito dopo qualsiasi reindirizzamento specificato dal comando.

Lo stato di ritorno di una pipeline è lo stato di uscita dell'ultimo comando, a meno che
guasto alla tubazione l'opzione è abilitata. Se guasto alla tubazione è abilitato, lo stato di ritorno della pipeline è
valore dell'ultimo comando (più a destra) per uscire con uno stato diverso da zero, o zero se tutti
i comandi escono correttamente. Se la parola riservata ! precede una pipeline, lo stato di uscita
di quella pipeline è la negazione logica dello stato di uscita come descritto sopra. La shell
attende che tutti i comandi nella pipeline terminino prima di restituire un valore.

Se l' tempo parola riservata precede una pipeline, il tempo trascorso, nonché il tempo utente e di sistema
consumati dalla sua esecuzione vengono segnalati quando la pipeline termina. Il -p opzione
cambia il formato di output in quello specificato da POSIX. Quando la shell è in posix modo, esso
non riconosce tempo come parola riservata se il token successivo inizia con `-'. Il
FORMATO ORA la variabile può essere impostata su una stringa di formato che specifica come avviene la temporizzazione
le informazioni dovrebbero essere visualizzate; vedere la descrizione di FORMATO ORA per Conchiglia Variabili
qua sotto.

Quando il guscio è dentro posix modo, tempo può essere seguito da una nuova riga. In questo caso, il
shell visualizza il tempo totale dell'utente e del sistema consumato dalla shell e dai suoi figli.
FORMATO ORA La variabile può essere utilizzata per specificare il formato delle informazioni temporali.

Ogni comando in una pipeline viene eseguito come processo separato (ovvero in una subshell).

elenchi
A stratagemma è una sequenza di una o più pipeline separate da uno degli operatori ;, &, &&,
or ||, e facoltativamente terminato da uno dei ;, &, o .

Di questi operatori di elenco, && e || hanno pari precedenza, seguiti da ; e &, che hanno
pari precedenza.

Una sequenza di una o più nuove righe può apparire in un stratagemma invece di un punto e virgola per delimitare
comandi.

Se un comando viene terminato dall'operatore di controllo &, la shell esegue il comando in
, il sfondo in una subshell. La shell non attende il completamento del comando e
lo stato di ritorno è 0. Comandi separati da un ; vengono eseguiti in sequenza; la shell attende
per ogni comando da terminare a turno. Lo stato di ritorno è lo stato di uscita dell'ultimo
comando eseguito.

Gli elenchi AND e OR sono sequenze di una o più pipeline separate da && e || di controllo
operatori, rispettivamente. Gli elenchi AND e OR vengono eseguiti con associatività a sinistra. Un AND
l'elenco ha la forma

command1 && command2

command2 viene eseguito se, e solo se, command1 restituisce uno stato di uscita pari a zero.

Un elenco OR ha la forma

command1 || command2

command2 viene eseguito se e solo se command1 restituisce uno stato di uscita diverso da zero. Il ritorno
lo stato degli elenchi AND e OR è lo stato di uscita dell'ultimo comando eseguito nell'elenco.

Compound Comandi
A composto command è uno dei seguenti. Nella maggior parte dei casi un stratagemma in un comando
la descrizione può essere separata dal resto del comando da una o più nuove righe e può
essere seguito da una nuova riga al posto del punto e virgola.

(stratagemma) stratagemma viene eseguito in un ambiente subshell (vedere COMANDO ESECUZIONE AMBIENTE
di seguito). Assegnazioni di variabili e comandi incorporati che influenzano la shell
ambiente non rimangono in vigore dopo il completamento del comando. Lo stato di ritorno
è lo stato di uscita di stratagemma.

{ stratagemma; }
stratagemma viene semplicemente eseguito nell'ambiente shell corrente. stratagemma deve essere terminato
con una nuova riga o un punto e virgola. Questo è noto come gruppo commandLo stato di ritorno
è lo stato di uscita di stratagemmaNota che a differenza dei metacaratteri ( e ), { e }
sono riservato parole e deve verificarsi dove è consentito l'uso di una parola riservata
riconosciuti. Poiché non causano una divisione di parola, devono essere separati da stratagemma
tramite uno spazio bianco o un altro metacarattere della shell.

((espressione))
. espressione viene valutato secondo le regole descritte di seguito sotto ARITMETICA
VALUTAZIONESe il valore dell'espressione è diverso da zero, lo stato di ritorno è 0;
altrimenti lo stato di ritorno è 1. Questo è esattamente equivalente a lasciare "espressione".

[[ espressione ]]
Restituisce uno stato di 0 o 1 a seconda della valutazione dell'espressione condizionale
espressioneLe espressioni sono composte dalle primarie descritte di seguito sotto
CONDIZIONALE ESPRESSIONILa suddivisione delle parole e l'espansione del percorso non vengono eseguite
sulle parole tra le [[ e ]]; espansione della tilde, parametro e variabile
espansione, espansione aritmetica, sostituzione di comando, sostituzione di processo e
vengono eseguite la rimozione delle virgolette. Operatori condizionali come -f deve essere non quotato a
essere riconosciuti come primari.

Se usato con [[, l' < e > gli operatori ordinano lessicograficamente utilizzando la corrente
Locale.

Vedi la descrizione del test comando incorporato (sezione COMANDI INCORPORATI DELLA SHELL di seguito) per
la gestione dei parametri (ad esempio parametri mancanti).

Quando il == e != vengono utilizzati gli operatori, la stringa a destra dell'operatore è
considerato un modello e abbinato secondo le regole descritte di seguito sotto Cartamodello
Abbinare, come se il extglob opzione shell sono state abilitate. L' = operatore è equivalente a
==Se l'opzione shell nessun caso corrispondente è abilitato, la partita viene eseguita senza riguardo a
il caso dei caratteri alfabetici. Il valore restituito è 0 se la stringa corrisponde a (==) o puoi
non corrisponde (!=) il modello e 1 altrimenti. Qualsiasi parte del modello può essere citata
per forzare la corrispondenza della parte tra virgolette come stringa.

Un ulteriore operatore binario, =~, è disponibile, con la stessa precedenza di == e !=.
Quando viene utilizzato, la stringa a destra dell'operatore è considerata un normale esteso
espressione e abbinata di conseguenza (come in regex(3)). Il valore di ritorno è 0 se la stringa
corrisponde al modello, altrimenti 1. Se l'espressione regolare è sintatticamente
errato, il valore restituito dall'espressione condizionale è 2. Se l'opzione shell
nessun caso corrispondente è abilitato, la corrispondenza viene eseguita senza tenere conto della distinzione tra maiuscole e minuscole
caratteri. Qualsiasi parte del modello può essere citata per forzare la porzione citata ad essere
corrisponde a una stringa. Le espressioni tra parentesi nelle espressioni regolari devono essere trattate
con attenzione, poiché i normali caratteri di virgolette perdono il loro significato tra parentesi. Se il
il modello è memorizzato in una variabile shell, citando la variabile l'espansione forza l'intero
modello da abbinare come stringa. Sottostringhe abbinate da sottoespressioni tra parentesi
all'interno dell'espressione regolare vengono salvati nella variabile array BASH_REMATCH. L'elemento
of BASH_REMATCH con indice 0 è la porzione della stringa che corrisponde all'intera stringa regolare
espressione. L'elemento di BASH_REMATCH con indice n è la porzione della stringa
abbinando il nesima sottoespressione tra parentesi.

Le espressioni possono essere combinate utilizzando i seguenti operatori, elencati in ordine decrescente di
precedenza:

( espressione )
Restituisce il valore di espressioneQuesto può essere utilizzato per sovrascrivere il normale
precedenza degli operatori.
! espressione
vero se espressione è falso.
espressione1 && espressione2
Vero se entrambi espressione1 e espressione2 sono vere
espressione1 || espressione2
Vero se entrambi espressione1 or espressione2 è vero.

. && e || gli operatori non valutano espressione2 se il valore di espressione1 is
sufficiente a determinare il valore restituito dall'intera espressione condizionale.

da Nome [ [ in [ parola ... ] ] ; ] do stratagemma ; fatto
L'elenco delle parole seguenti in viene espanso, generando un elenco di elementi. Il
variabile Nome è impostato a turno su ciascun elemento di questo elenco e stratagemma viene eseguito
ogni volta. Se il in parola viene omesso, il da il comando viene eseguito stratagemma una volta per ciascuno
parametro posizionale che è impostato (vedi PARAMETRI di seguito). Lo stato di ritorno è il
stato di uscita dell'ultimo comando eseguito. Se l'espansione degli elementi
i seguenti in si traduce in un elenco vuoto, nessun comando viene eseguito e il ritorno
lo stato è 0.

da (( espr1 ; espr2 ; espr3 )) ; do stratagemma ; fatto
Innanzitutto, l'espressione aritmetica espr1 viene valutato secondo le regole
descritto di seguito sotto ARITMETICA VALUTAZIONEL'espressione aritmetica espr2 is
poi valutato ripetutamente fino a quando non viene valutato a zero. Ogni volta espr2 valuta a
un valore diverso da zero, stratagemma viene eseguito e l'espressione aritmetica espr3 is
valutato. Se un'espressione viene omessa, si comporta come se valutasse 1. Il
il valore di ritorno è lo stato di uscita dell'ultimo comando in stratagemma che viene eseguito, o
false se una qualsiasi delle espressioni non è valida.

select Nome [ in parola ]; do stratagemma ; fatto
L'elenco delle parole seguenti in viene espanso, generando un elenco di elementi. L'insieme di
le parole espanse vengono stampate sull'errore standard, ciascuna preceduta da un numero. Se il
in parola viene omesso, vengono stampati i parametri posizionali (vedere PARAMETRI sotto).
. PS3 viene quindi visualizzato il prompt e viene letta una riga dall'input standard. Se il
la riga è composta da un numero corrispondente a una delle parole visualizzate, quindi
valore di Nome è impostato su quella parola. Se la riga è vuota, le parole e il prompt sono
visualizzato di nuovo. Se EOF viene letto, il comando viene completato. Qualsiasi altro valore letto
cause Nome da impostare a null. La riga letta viene salvata nella variabile REPLY.
stratagemma viene eseguito dopo ogni selezione fino a quando un rompere il comando viene eseguito. L'uscita
stato di select è lo stato di uscita dell'ultimo comando eseguito in stratagemma, o zero
se non è stato eseguito alcun comando.

Custodie parola in [ [(] modello [ | modello ] ... ) stratagemma ;; ] ... che C
A Custodie il comando si espande prima parolae cerca di confrontarlo con ciascuno modello in
a sua volta, utilizzando le stesse regole di corrispondenza per l'espansione del percorso (vedere Pathname
Espansione sotto). Il parola viene espanso utilizzando l'espansione della tilde, il parametro e
espansione di variabili, sostituzione aritmetica, sostituzione di comandi, processo
sostituzione e rimozione delle citazioni. Ogni modello esaminato è espanso usando la tilde
espansione, espansione di parametri e variabili, sostituzione aritmetica, comando
sostituzione e sostituzione del processo. Se l'opzione shell nessun caso corrispondente is
abilitato, la corrispondenza viene eseguita senza tenere conto della distinzione tra maiuscole e minuscole
caratteri. Quando viene trovata una corrispondenza, il corrispondente stratagemma viene eseguito. Se il ;;
viene utilizzato l'operatore, non vengono tentate corrispondenze successive dopo il primo modello
partita. Utilizzando ;& al posto di ;; fa sì che l'esecuzione continui con il stratagemma
associato al prossimo set di modelli. Utilizzando ;;& al posto di ;; causa il
shell per testare il prossimo elenco di modelli nell'istruzione, se presente, ed eseguire qualsiasi
associato stratagemma in caso di corrispondenza riuscita. Lo stato di uscita è zero se non esiste alcun pattern
corrispondenze. Altrimenti, è lo stato di uscita dell'ultimo comando eseguito in stratagemma.

if stratagemma; poi stratagemma; [ Elif stratagemma; poi stratagemma; ] ... [ altro stratagemma; ] fi
. if stratagemma viene eseguito. Se il suo stato di uscita è zero, il poi stratagemma viene eseguito.
Altrimenti, ciascuno Elif stratagemma viene eseguito a turno e se il suo stato di uscita è zero, il
corrispondente poi stratagemma viene eseguito e il comando viene completato. Altrimenti, il altro
stratagemma viene eseguito, se presente. Lo stato di uscita è lo stato di uscita dell'ultimo
comando eseguito, oppure zero se nessuna condizione è stata verificata come vera.

while lista-1; do lista-2; fatto
fino a quando lista-1; do lista-2; fatto
. while il comando esegue continuamente l'elenco lista-2 finché dura l'ultimo comando
nella lista lista-1 restituisce uno stato di uscita pari a zero. Il fino a quando il comando è identico
ai while comando, eccetto che il test viene negato; lista-2 viene eseguito finché
come ultimo comando in lista-1 restituisce uno stato di uscita diverso da zero. Lo stato di uscita di
, il while e fino a quando comandi è lo stato di uscita dell'ultimo comando eseguito in
lista-2, oppure zero se non ne è stato eseguito nessuno.

Coprocessi
A coprocess è un comando shell preceduto da coprocesso parola riservata. Un coprocesso è
eseguito in modo asincrono in una subshell, come se il comando fosse stato terminato con &
operatore di controllo, con un tubo bidirezionale stabilito tra la shell in esecuzione e la
coprocesso.

Il formato per un coprocesso è:

coprocesso [NOME] command [redirect]

Questo crea un coprocesso denominato NOME. Se NOME non viene fornito, il nome predefinito è COPROC.
NOME non deve essere fornito se command è un semplice command (vedi sopra); altrimenti è
interpretato come la prima parola del comando semplice. Quando il coprocesso viene eseguito, il
shell crea una variabile array (vedere Array sotto) denominato NOME nel contesto di
esecuzione della shell. L'output standard di command è collegato tramite un pipe a un file
descrittore nella shell in esecuzione e quel descrittore di file è assegnato a NOME[0]. Il
input standard di command è collegato tramite una pipe a un descrittore di file nell'esecuzione
shell, e quel descrittore di file è assegnato a NOME[1]. Questo tubo è stabilito prima
eventuali reindirizzamenti specificati dal comando (vedere REINDIRIZZAZIONE di seguito). I descrittori di file
possono essere utilizzati come argomenti per comandi shell e reindirizzamenti utilizzando la parola standard
espansioni. I descrittori di file non sono disponibili nelle sottoshell. L'ID di processo del
la shell generata per eseguire il coprocesso è disponibile come valore della variabile NOME_PID.
. aspettare Il comando builtin può essere utilizzato per attendere la terminazione del coprocesso.

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

Conchiglia Funzione Definizioni
Una funzione shell è un oggetto che viene chiamato come un semplice comando ed esegue un composto
comando con un nuovo set di parametri posizionali. Le funzioni shell sono dichiarate come segue:

Nome () comando composto [reindirizzamento]
funzione Nome [()] comando composto [reindirizzamento]
Questo definisce una funzione denominata NomeLa parola riservata funzione è facoltativo. Se
, il funzione viene fornita la parola riservata, le parentesi sono facoltative. stile di vita of
la funzione è il comando composto comando composto (Vedi Compound Comandi
sopra). Quel comando è solitamente un stratagemma di comandi tra { e }, ma può essere qualsiasi
comando elencato sotto Compound Comandi sopra. comando composto viene eseguito
ogni volta che Nome è specificato come nome di un comando semplice. Quando in posix modo,
Nome potrebbe non essere il nome di uno dei POSIX la nostra speciale incorporatiEventuali reindirizzamenti
(Vedi REINDIRIZZAZIONE di seguito) specificati quando una funzione è definita vengono eseguiti quando la
la funzione viene eseguita. Lo stato di uscita di una definizione di funzione è zero a meno che non venga eseguito un
si verifica un errore di sintassi o esiste già una funzione di sola lettura con lo stesso nome. Quando
eseguito, lo stato di uscita di una funzione è lo stato di uscita dell'ultimo comando
eseguito nel corpo. (Vedi FUNZIONI sotto.)

COMMENTI


In una shell non interattiva, o una shell interattiva in cui il commenti interattivi
opzione per il negozio builtin è abilitato (vedi SHELL COSTRUZIONE COMANDI sotto), una parola
iniziando con # fa sì che quella parola e tutti i caratteri rimanenti su quella riga vengano ignorati.
Una shell interattiva senza il commenti interattivi l'opzione abilitata non consente
Commenti. Il commenti interattivi l'opzione è attiva per impostazione predefinita nelle shell interattive.

CITAZIONE


Quoting viene utilizzato per rimuovere il significato speciale di determinati caratteri o parole dalla shell.
Le virgolette possono essere utilizzate per disabilitare il trattamento speciale per i caratteri speciali, per evitare
per impedire che le parole riservate vengano riconosciute come tali e per impedire l'espansione dei parametri.

Ciascuno dei metacaratteri elencati sopra sotto DEFINIZIONI ha un significato speciale per la conchiglia
e deve essere citato se vuole rappresentare se stesso.

Quando vengono utilizzate le funzionalità di espansione della cronologia dei comandi (vedere STORIA ESPANSIONE
sotto), il storia espansione carattere, di solito !, deve essere citato per evitare la cronologia
espansione.

Esistono tre meccanismi di quotazione: il fuga carattere, virgolette singole e doppie
citazioni.

Una barra rovesciata non tra virgolette (\) È l' fuga carattere. Conserva il valore letterale del
carattere successivo che segue, ad eccezione di Se un \paio
appare, e la barra rovesciata non è essa stessa quotata, il \è trattato come una linea
continuazione (vale a dire, viene rimosso dal flusso di input e di fatto ignorato).

Racchiudere i caratteri tra virgolette singole preserva il valore letterale di ciascun carattere all'interno
le virgolette. Una virgoletta singola non può essere inserita tra virgolette singole, anche se preceduta da un
barra rovesciata.

Racchiudere i caratteri tra virgolette doppie preserva il valore letterale di tutti i caratteri all'interno
le virgolette, ad eccezione di $, `, \e, quando l'espansione della cronologia è abilitata, !.
caratteri $ e ` mantengono il loro significato speciale tra virgolette doppie. La barra rovesciata
mantiene il suo significato speciale solo se seguito da uno dei seguenti caratteri: $, `,
", \, o Una virgoletta doppia può essere citata tra virgolette doppie precedendola
con una barra rovesciata. Se abilitato, l'espansione della cronologia verrà eseguita a meno che un ! apparendo
tra virgolette doppie viene eseguito l'escape utilizzando una barra rovesciata. La barra rovesciata che precede il ! non è
rimosso.

I parametri speciali * e @ hanno un significato speciale quando sono tra virgolette doppie (vedi PARAMETRI
sotto).

Parole della forma $'stringa' sono trattati in modo speciale. La parola si espande a stringa, con
caratteri con escape tramite barra rovesciata sostituiti come specificato dallo standard ANSI C. Barra rovesciata
le sequenze di escape, se presenti, vengono decodificate come segue:
\a avviso (campanello)
\b backspace
\e
\E un personaggio di fuga
\f feed di moduli
\n nuova linea
\r ritorno a capo
\t tab orizzontale
\v tab verticale
\\ backslash
\' virgoletta singola
\" doppia virgoletta
\nnn il carattere a otto bit il cui valore è il valore ottale nnn (da uno a tre
cifre)
\xHH il carattere a otto bit il cui valore è il valore esadecimale HH (uno o due
cifre esadecimali)
\uHhhh il carattere Unicode (ISO/IEC 10646) il cui valore è il valore esadecimale
Hhhh (da una a quattro cifre esadecimali)
\UHHHHHHH
il carattere Unicode (ISO/IEC 10646) il cui valore è il valore esadecimale
HHHHHHH (da una a otto cifre esadecimali)
\cx un controllo-x carattere

Il risultato espanso è racchiuso tra virgolette singole, come se il simbolo del dollaro non fosse presente.

Una stringa tra virgolette doppie preceduta dal simbolo del dollaro ($"stringa") farà sì che la stringa sia
tradotto in base alle impostazioni locali correnti. Se le impostazioni locali correnti sono C or POSIX, l'
il simbolo del dollaro viene ignorato. Se la stringa viene tradotta e sostituita, la sostituzione è
doppiamente quotato.

PARAMETRI


A parametro è un'entità che memorizza valori. Può essere un Nome, un numero o uno dei
caratteri speciali elencati di seguito sotto Special Scheda Sintetica. UN variabile è un parametro
indicato da un NomeUna variabile ha una APPREZZIAMO e zero o più gli attributiGli attributi sono
assegnato utilizzando il dichiarare comando integrato (vedi dichiarare sotto in SHELL COSTRUZIONE COMANDI).

Un parametro è impostato se gli è stato assegnato un valore. La stringa nulla è un valore valido.
Una volta impostata una variabile, è possibile annullarla solo utilizzando non settato comando integrato (vedi SHELL
COSTRUZIONE COMANDI sotto).

A variabile può essere assegnato mediante una dichiarazione del tipo

Nome=[APPREZZIAMO]

If APPREZZIAMO non è specificato, alla variabile viene assegnata la stringa nulla. Tutti valori sottoporsi a tilde
espansione, espansione di parametri e variabili, sostituzione di comandi, espansione aritmetica,
e rimozione delle citazioni (vedere ESPANSIONE sotto). Se la variabile ha il suo numero intero set di attributi,
poi APPREZZIAMO viene valutata come un'espressione aritmetica anche se l'espansione $((...)) non è
usato (vedi Aritmetica Espansione di seguito). La suddivisione delle parole non viene eseguita, con il
eccezione di "$@" come spiegato di seguito Special Scheda SinteticaL'espansione del percorso non è
eseguito. Le istruzioni di assegnazione possono anche apparire come argomenti per alias, dichiarare,
comporre, export, in sola letturae locale comandi incorporati. Quando in posix modo, questi incorporati
può apparire in un comando dopo una o più istanze di command incorporato e conservare
queste proprietà delle istruzioni di assegnazione.

Nel contesto in cui un'istruzione di assegnazione assegna un valore a una variabile shell o
indice dell'array, l'operatore += può essere utilizzato per aggiungere o aggiungere alla variabile precedente
valore. Quando += viene applicato a una variabile per la quale il numero intero l'attributo è stato impostato,
APPREZZIAMO viene valutato come un'espressione aritmetica e aggiunto al valore corrente della variabile,
che viene anche valutato. Quando += viene applicato a una variabile array utilizzando il composto
assegnazione (vedi Array di seguito), il valore della variabile non viene annullato (come avviene quando si utilizza =),
e i nuovi valori vengono aggiunti all'array a partire da uno maggiore del massimo dell'array
indice (per array indicizzati) o aggiunti come coppie chiave-valore aggiuntive in un array associativo.
Quando applicato a una variabile con valore stringa, APPREZZIAMO viene espanso e aggiunto alla variabile
valore.

A una variabile può essere assegnata la nameref attributo utilizzando il -n opzione per il dichiarare or
locale comandi incorporati (vedere le descrizioni di dichiarare e locale sotto) per creare un
nameref, o un riferimento a un'altra variabile. Ciò consente di manipolare le variabili
indirettamente. Ogni volta che si fa riferimento alla variabile nameref o la si assegna, l'operazione è
effettivamente eseguito sulla variabile specificata dal valore della variabile nameref. Un nameref
è comunemente usato all'interno delle funzioni shell per fare riferimento a una variabile il cui nome viene passato come
argomento alla funzione. Ad esempio, se un nome di variabile viene passato a una funzione shell
come primo argomento, in esecuzione
dichiara -n ref=$1
all'interno della funzione crea una variabile nameref ref il cui valore è il nome della variabile passato
come primo argomento. Riferimenti e assegnazioni a ref sono trattati come riferimenti e
assegnazioni alla variabile il cui nome è stato passato come $1Se la variabile di controllo in un da
il ciclo ha l'attributo nameref, l'elenco delle parole può essere un elenco di variabili shell e un
il riferimento al nome verrà stabilito per ogni parola nell'elenco, a turno, quando il ciclo è
eseguito. Non è possibile assegnare alle variabili array -n attributo. Tuttavia, le variabili nameref
può fare riferimento a variabili array e variabili array con indice. I nameref possono essere deimpostati
usando il -n opzione per il non settato incorporato. Altrimenti, se non settato viene eseguito con il nome
di una variabile nameref come argomento, la variabile a cui fa riferimento la variabile nameref sarà
essere disinserito.

posizionale Scheda Sintetica
A posizionale parametro è un parametro indicato da una o più cifre, diverse dalla singola
cifra 0. I parametri posizionali vengono assegnati dagli argomenti della shell quando è
invocato e può essere riassegnato utilizzando il set comando incorporato. I parametri posizionali possono
non essere assegnato con istruzioni di assegnazione. I parametri posizionali sono temporaneamente
sostituito quando viene eseguita una funzione shell (vedere FUNZIONI sotto).

Quando un parametro posizionale costituito da più di una cifra viene espanso, deve essere
racchiuso tra parentesi graffe (vedi ESPANSIONE sotto).

Special Scheda Sintetica
La shell tratta diversi parametri in modo speciale. Questi parametri possono essere solo referenziati;
non è consentita l'assegnazione a loro.
* Si espande ai parametri posizionali, partendo da uno. Quando l'espansione non è
tra virgolette doppie, ogni parametro posizionale si espande in una parola separata. In
nei contesti in cui viene eseguito, tali parole sono soggette a ulteriore suddivisione delle parole
e l'espansione del percorso. Quando l'espansione avviene tra virgolette doppie, si espande
in una singola parola con il valore di ciascun parametro separato dal primo carattere
di IFS variabile speciale. Cioè, "$*" è equivalente a "$1c$2c...", dove c
è il primo carattere del valore del IFS variabile. Se IFS non è impostato, il
i parametri sono separati da spazi. Se IFS è nullo, i parametri sono uniti
senza separatori intermedi.
@ Si espande ai parametri posizionali, a partire da uno. Quando si verifica l'espansione
tra virgolette doppie, ogni parametro si espande in una parola separata. Cioè, "$@
equivalente a "$1""$2" ... Se l'espansione tra virgolette doppie avviene all'interno di una parola,
l'espansione del primo parametro è unita alla parte iniziale del
parola originale, e l'espansione dell'ultimo parametro è unita all'ultima parte
della parola originale. Quando non ci sono parametri posizionali, "$@" e $@ espandere
a nulla (cioè, vengono rimossi).
# Si espande al numero di parametri posizionali in decimale.
? Si espande allo stato di uscita della pipeline in primo piano eseguita più di recente.
- Si espande ai flag delle opzioni correnti come specificato durante l'invocazione, da set
comando incorporato, o quelli impostati dalla shell stessa (come il -i opzione).
$ Si espande all'ID del processo della shell. In una subshell (), si espande all'ID del processo della shell.
ID di processo della shell corrente, non della subshell.
! Si espande all'ID del processo del lavoro più recentemente inserito in background,
sia eseguito come comando asincrono o utilizzando il bg incorporato (vedi JOB
CONTROLLO sotto).
0 Si espande nel nome della shell o dello script della shell. Questo è impostato in shell
inizializzazione. Se bash viene richiamato con un file di comandi, $0 è impostato sul nome
di quel file. Se bash è iniziato con il -c opzione, quindi $0 è impostato sul primo
argomento dopo la stringa da eseguire, se presente. Altrimenti, viene impostato
al nome del file utilizzato per richiamare bash, come dato dall'argomento zero.
_ All'avvio della shell, impostare sul percorso assoluto utilizzato per richiamare la shell o la shell
script eseguito come passato nell'ambiente o nell'elenco degli argomenti. Successivamente,
si espande all'ultimo argomento del comando precedente, dopo l'espansione. Impostato anche su
il percorso completo utilizzato per richiamare ciascun comando eseguito e inserito nel
ambiente esportato in quel comando. Quando si controlla la posta, questo parametro contiene
nome del file di posta attualmente in fase di controllo.

Conchiglia Variabili
Le seguenti variabili vengono impostate dalla shell:

BASH Si espande al nome file completo utilizzato per richiamare questa istanza di bash.
BASHOTS
Un elenco separato da due punti delle opzioni shell abilitate. Ogni parola nell'elenco è una parola valida
argomento per il -s opzione per il negozio comando integrato (vedi SHELL COSTRUZIONE COMANDI
di seguito). Le opzioni che appaiono in BASHOTS sono quelli segnalati come on by negozio. Se
questa variabile è nell'ambiente quando bash si avvia, ogni opzione della shell nel
list verrà abilitato prima di leggere qualsiasi file di avvio. Questa variabile è di sola lettura.
BASHPID
Si espande all'ID del processo corrente bash processo. Questo differisce da $$ per
determinate circostanze, come sottogusci che non richiedono bash essere ri-
inizializzato.
BASH_ALIASES
Una variabile array associativa i cui membri corrispondono all'elenco interno di
alias come mantenuti dal alias incorporato. Gli elementi aggiunti a questo array appaiono in
l'elenco degli alias; la disimpostazione degli elementi dell'array causa la rimozione degli alias dall'alias
elenco.
BASH_ARGC
Una variabile array i cui valori sono il numero di parametri in ogni frame del
corrente bash stack di chiamate di esecuzione. Il numero di parametri per l'esecuzione corrente
subroutine (funzione shell o script eseguito con . or source) è in cima
lo stack. Quando viene eseguita una subroutine, il numero di parametri passati è
spinto su BASH_ARGC. I set di shell BASH_ARGC solo quando si è in debug esteso
modalità (vedere la descrizione del debug esteso opzione per il negozio incorporato sotto)
BASH_ARGV
Una variabile array contenente tutti i parametri nella variabile corrente bash esecuzione
stack delle chiamate. Il parametro finale dell'ultima chiamata di subroutine si trova in cima allo stack
pila; il primo parametro della chiamata iniziale è in fondo. Quando una subroutine
viene eseguito, i parametri forniti vengono spinti su BASH_ARGV. I set di shell
BASH_ARGV solo quando in modalità di debug estesa (vedere la descrizione del debug esteso
opzione per il negozio incorporato sotto)
BASH_CMDS
Una variabile array associativa i cui membri corrispondono alla tabella hash interna
di comandi come mantenuti dal hash incorporato. Gli elementi aggiunti a questo array appaiono
nella tabella hash; la disimpostazione degli elementi dell'array causa la rimozione dei comandi dall'
tabella hash.
BASH_COMANDO
Il comando attualmente in esecuzione o in procinto di essere eseguito, a meno che la shell non sia
eseguire un comando come risultato di una trappola, nel qual caso è il comando
in esecuzione al momento della trappola.
BASH_EXECUTION_STRING
L'argomento del comando per -c opzione di invocazione.
BASH_LINENO
Una variabile array i cui membri sono i numeri di riga nei file sorgente in cui ciascuno
membro corrispondente di NOMEFUNZIONE è stato invocato. ${BASH_LINENO[$i]} è la linea
numero nel file sorgente (${BASH_SOURCE[$ i+1]}) dove ${FUNCNAME[$i]} è stato chiamato
(o ${BASH_LINENO[$i-1]} se referenziato all'interno di un'altra funzione shell). Utilizzare LINENO
per ottenere il numero di riga corrente.
BASH_REMATCH
Una variabile array i cui membri sono assegnati da =~ operatore binario per il [[
comando condizionale. L'elemento con indice 0 è la porzione della stringa
che corrisponde all'intera espressione regolare. L'elemento con indice n è la porzione di
la stringa corrispondente a nsottoespressione tra parentesi. Questa variabile è di lettura
solo.
BASH_SOURCE
Una variabile array i cui membri sono i nomi dei file di origine in cui si trova il corrispondente
nomi delle funzioni shell in NOMEFUNZIONE sono definite le variabili array. La shell
funzione ${FUNCNAME[$i]} è definito nel file ${BASH_SOURCE[$i]} e chiamato da
${BASH_SOURCE[$ i+1]}.
BASH_SUBSHELL
Incrementato di uno all'interno di ogni subshell o ambiente subshell quando la shell
inizia l'esecuzione in quell'ambiente. Il valore iniziale è 0.
BASH_VERSINFO
Una variabile array di sola lettura i cui membri contengono informazioni sulla versione per questa istanza
of bashI valori assegnati ai membri dell'array sono i seguenti:
BASH_VERSINFO[0] Il numero di versione principale (il rilasciare).
BASH_VERSINFO[1] Il numero di versione minore (il versione).
BASH_VERSINFO[2] Il livello di patch.
BASH_VERSINFO[3] La versione build.
BASH_VERSINFO[4] Lo stato di rilascio (ad esempio, beta1).
BASH_VERSINFO[5] Il valore di TIPO MACCHINA.
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 shell richiamate dal programmabile
strutture di completamento (vedi Programmabile Completamento sotto).
COMP_KEY
La chiave (o la chiave finale di una sequenza di tasti) utilizzata per richiamare il completamento corrente
funzione.
COMP_LINE
La riga di comando corrente. Questa variabile è disponibile solo nelle funzioni shell e
comandi esterni invocati dalle strutture di completamento programmabili (vedere
Programmabile Completamento sotto).
COMP_POINT
L'indice della posizione corrente del cursore rispetto all'inizio della corrente
comando. Se la posizione corrente del cursore è alla fine del comando corrente, il
il valore di questa variabile è uguale a ${#COMP_LINE}Questa variabile è disponibile solo
nelle funzioni shell e nei comandi esterni richiamati dal completamento programmabile
strutture (vedi Programmabile Completamento sotto).
COMP_TYPE
Impostato su un valore intero corrispondente al tipo di completamento tentato
ha causato la chiamata di una funzione di completamento: TAB, per il completamento normale, ?, Per
elencando i completamenti dopo le schede successive, !, per elencare le alternative su parziale
completamento delle parole, @, per elencare i completamenti se la parola non è non modificata, o %, Per
completamento del menu. Questa variabile è disponibile solo nelle funzioni shell ed esterne
comandi invocati dalle strutture di completamento programmabili (vedere Programmabile
Completamento sotto).
COMP_PAROLE INTERROTTE
L'insieme dei caratteri che il readline la libreria tratta come separatori di parole quando
eseguendo il completamento delle parole. Se COMP_PAROLE INTERROTTE non è impostato, perde la sua particolarità
proprietà, anche se successivamente viene reimpostato.
PAROLE COMPLETE
Una variabile array (vedere Array sotto) costituito dalle singole parole nel
riga di comando corrente. La riga è divisa in parole come readline lo dividerebbe,
utilizzando COMP_PAROLE INTERROTTE come descritto sopra. Questa variabile è disponibile solo nella shell
funzioni invocate dalle strutture di completamento programmabili (vedere Programmabile
Completamento sotto).
COPROC Una variabile array (vedere Array di seguito) creato per contenere i descrittori di file per
output da e input a un coprocesso senza nome (vedere Coprocessi sopra).
DIRSTACK
Una variabile array (vedere Array di seguito) contenente il contenuto attuale del
stack delle directory. Le directory appaiono nello stack nell'ordine in cui sono visualizzate
dal dirs incorporato. L'assegnazione ai membri di questa variabile array può essere utilizzata per
modificare le directory già presenti nello stack, ma il pushd e popd i builtin devono essere
utilizzato per aggiungere e rimuovere directory. L'assegnazione a questa variabile non cambierà
la directory corrente. Se DIRSTACK non è impostato, perde le sue proprietà speciali, anche
se successivamente viene ripristinato.
ID UE Si espande all'ID utente effettivo dell'utente corrente, inizializzato all'avvio della shell.
Questa variabile è di sola lettura.
NOMEFUNZIONE
Una variabile array contenente i nomi di tutte le funzioni shell attualmente presenti nel
stack delle chiamate di esecuzione. L'elemento con indice 0 è il nome di qualsiasi chiamata corrente-
esecuzione della funzione shell. L'elemento più in basso (quello con l'indice più alto)
è "main". Questa variabile esiste solo quando è in esecuzione una funzione shell.
Incarichi a NOMEFUNZIONE non hanno alcun effetto e restituiscono uno stato di errore. Se NOMEFUNZIONE is
se non viene impostato, perde le sue proprietà speciali, anche se successivamente viene reimpostato.

Questa variabile può essere utilizzata con BASH_LINENO e BASH_SOURCEOgni elemento di
NOMEFUNZIONE ha elementi corrispondenti in BASH_LINENO e BASH_SOURCE per descrivere il
stack di chiamate. Ad esempio, ${FUNCNAME[$i]} è stato chiamato dal file
${BASH_SOURCE[$ i+1]} al numero di riga ${BASH_LINENO[$i]}. visitatore incorporato
visualizza lo stack delle chiamate corrente utilizzando queste informazioni.
GRUPPI Una variabile array contenente l'elenco dei gruppi di cui l'utente corrente è un
membro. Assegnazioni a GRUPPI non hanno alcun effetto e restituiscono uno stato di errore. Se
GRUPPI non è impostato, perde le sue proprietà speciali, anche se successivamente viene reimpostato.
HISTCMD
Il numero della cronologia, o indice nell'elenco della cronologia, del comando corrente. Se
HISTCMD non è impostato, perde le sue proprietà speciali, anche se successivamente
reset.
HOSTNAME
Impostato automaticamente sul nome dell'host corrente.
TIPO HOST
Impostato automaticamente su una stringa che descrive in modo univoco il tipo di macchina su cui
bash è in esecuzione. L'impostazione predefinita dipende dal sistema.
LINENO Ogni volta che si fa riferimento a questo parametro, la shell sostituisce un numero decimale
che rappresenta il numero di riga sequenziale corrente (a partire da 1) all'interno di uno script
o funzione. Quando non è in uno script o in una funzione, il valore sostituito non è
garantito che sia significativo. Se LINENO non è impostato, perde le sue proprietà speciali,
anche se successivamente viene ripristinato.
TIPO MACCHINA
Impostato automaticamente su una stringa che descrive completamente il tipo di sistema su cui bash is
esecuzione, nello standard GNU sistema-aziendale-cpu formato. Il valore predefinito è system-
dipendente.
MAPFILE
Una variabile array (vedere Array sotto) creato per contenere il testo letto dal mapfile
incorporato quando non viene fornito alcun nome di variabile.
VECCHIO PWD La directory di lavoro precedente come impostata da cd comando.
OPTARG Il valore dell'ultimo argomento dell'opzione elaborato da getopts comando integrato (vedi
SHELL COSTRUZIONE COMANDI sotto).
OTTIMIZZA L'indice del prossimo argomento da elaborare da getopts comando integrato (vedi
SHELL COSTRUZIONE COMANDI sotto).
OSTYPE Impostato automaticamente su una stringa che descrive il sistema operativo su cui bash is
in esecuzione. L'impostazione predefinita dipende dal sistema.
PIPESTATUS
Una variabile array (vedere Array di seguito) contenente un elenco di valori di stato di uscita da
i processi nella pipeline in primo piano eseguita più di recente (che può contenere
solo un singolo comando).
PPID ID del processo padre della shell. Questa variabile è di sola lettura.
PWD La directory di lavoro corrente come impostata da cd comando.
CASUALE Ogni volta che si fa riferimento a questo parametro, viene restituito un numero intero casuale compreso tra 0 e 32767.
generato. La sequenza di numeri casuali può essere inizializzata assegnando un valore
a CASUALE. Se CASUALE non è impostato, perde le sue proprietà speciali, anche se è
successivamente ripristinato.
LEGGI LINEA_LINEA
Il contenuto di readline buffer di riga, da utilizzare con "bind -x" (vedere SHELL COSTRUZIONE
COMANDI sotto).
READLINE_POINT
La posizione del punto di inserimento nel readline buffer di riga, da utilizzare con "bind
-x" (vedi SHELL COSTRUZIONE COMANDI sotto).
REPLY Impostato sulla riga di input letta dal read comando incorporato quando non ci sono argomenti
fornito.
SECONDI
Ogni volta che si fa riferimento a questo parametro, il numero di secondi trascorsi dall'avvio della shell
viene restituita l'invocazione. Se viene assegnato un valore a SECONDI, il valore restituito su
riferimenti successivi è il numero di secondi trascorsi dall'assegnazione più il valore
assegnato. Se SECONDI non è impostato, perde le sue proprietà speciali, anche se è
successivamente ripristinato.
CONCHIGLIE
Un elenco separato da due punti delle opzioni shell abilitate. Ogni parola nell'elenco è una parola valida
argomento per il -o opzione per il set comando integrato (vedi SHELL COSTRUZIONE COMANDI
di seguito). Le opzioni che appaiono in CONCHIGLIE sono quelli segnalati come on by set -o. Se
questa variabile è nell'ambiente quando bash si avvia, ogni opzione della shell nel
list verrà abilitato prima di leggere qualsiasi file di avvio. Questa variabile è di sola lettura.
SHLVL Incrementato di uno ogni volta che un'istanza di bash è avviato.
UID Si espande all'ID utente dell'utente corrente, inizializzato all'avvio della shell. Questo
la variabile è di sola lettura.

Le seguenti variabili sono utilizzate dalla shell. In alcuni casi, bash assegna un valore predefinito
valore a una variabile; questi casi sono indicati di seguito.

BASH_COMPAT
Il valore viene utilizzato per impostare il livello di compatibilità della shell. Vedere la descrizione di
, il negozio incorporato sotto sotto SHELL COSTRUZIONE COMANDI per una descrizione del
vari livelli di compatibilità e i loro effetti. Il valore può essere un numero decimale
(ad esempio, 4.2) o un numero intero (ad esempio, 42) corrispondente alla compatibilità desiderata
livello. Se BASH_COMPAT non è impostato o è impostato sulla stringa vuota, il livello di compatibilità
è impostato sul valore predefinito per la versione corrente. Se BASH_COMPAT è impostato su un valore
che non è uno dei livelli di compatibilità validi, la shell stampa un errore
messaggio e imposta il livello di compatibilità sul valore predefinito per la versione corrente.
I livelli di compatibilità validi corrispondono alle opzioni di compatibilità accettate da
, il negozio builtin descritto di seguito (ad esempio, compat42 significa che 4.2 e 42 sono
valori validi). Anche la versione corrente è un valore valido.
BASH_ENV
Se questo parametro è impostato quando bash sta eseguendo uno script shell, il suo valore è
interpretato come un nome di file contenente comandi per inizializzare la shell, come in
~ / .bashrc. Il valore di BASH_ENV è soggetto all'espansione dei parametri, comando
sostituzione ed espansione aritmetica prima di essere interpretati come nome di file.
PERCORSO non viene utilizzato per cercare il nome del file risultante.
BASH_XTRACEFD
Se impostato su un numero intero corrispondente a un descrittore di file valido, bash scriverà il
traccia l'output generato quando set -x è abilitato per quel descrittore di file. Il file
il descrittore è chiuso quando BASH_XTRACEFD non è impostato o gli è stato assegnato un nuovo valore.
Disimpostazione BASH_XTRACEFD o assegnandogli la stringa vuota si provoca l'output della traccia a
essere inviato all'errore standard. Nota che l'impostazione BASH_XTRACEFD a 2 (lo standard
descrittore del file di errore) e quindi la sua disimpostazione comporterà l'errore standard
essendo chiuso.
CDPATH Il percorso di ricerca per cd comando. Questo è un elenco di directory separate da due punti
in cui la shell cerca le directory di destinazione specificate da cd comando.
Un valore di esempio è ".:~:/ usr".
BAMBINO_MAX
Imposta il numero di valori di stato figlio usciti che la shell deve ricordare. Bash lo farà
non consentire che questo valore venga ridotto al di sotto di un minimo imposto da POSIX, e c'è un
valore massimo (attualmente 8192) che questo non può superare. Il valore minimo è
dipendente dal sistema.
COLONNE
Utilizzato dal select comando composto per determinare la larghezza del terminale durante la stampa
elenchi di selezione. Impostato automaticamente se il controlla la dimensione l'opzione è abilitata o in un
shell interattiva al ricevimento di un SIGWINCH.
COMPRENDI
Una variabile array da cui bash legge i possibili completamenti generati da un
funzione shell invocata dalla funzione di completamento programmabile (vedere Programmabile
Completamento di seguito). Ogni elemento dell'array contiene un possibile completamento.
EMACS If bash trova questa variabile nell'ambiente quando la shell inizia con il valore
"t", presuppone che la shell sia in esecuzione in un buffer della shell Emacs e disabilita
modifica della riga.
ENV Simile a BASH_ENV; utilizzato quando la shell viene richiamata in modalità POSIX.
FCEDIT L'editor predefinito per fc comando incorporato.
FIGNORE
Un elenco di suffissi separati da due punti da ignorare quando si esegue il completamento del nome del file
(Vedi LINEA DI LETTURA di seguito). Un nome di file il cui suffisso corrisponde a una delle voci in
FIGNORE è escluso dall'elenco dei nomi di file corrispondenti. Un valore di esempio è ".o:~"
(Quando si assegna un valore a questa variabile, che contiene tilde, è necessario usare le virgolette).
FUNCNEST
Se impostato su un valore numerico maggiore di 0, definisce un livello massimo di annidamento delle funzioni.
Le invocazioni di funzioni che superano questo livello di annidamento causeranno il comando corrente
abortire.
GLOBIGNORE
Un elenco di modelli separati da due punti che definiscono l'insieme di nomi di file da ignorare da
espansione del percorso. Se un nome file corrisponde anche a un modello di espansione del percorso
corrisponde a uno dei modelli in GLOBIGNORE, viene rimosso dall'elenco delle corrispondenze.
CONTROLLO STORICO
Un elenco di valori separati da due punti che controllano come i comandi vengono salvati nella cronologia
elenco. Se l'elenco dei valori include ignorare lo spazio, linee che iniziano con a spazio
i caratteri non vengono salvati nell'elenco cronologico. Un valore di ignoredups provoca linee
corrispondente alla voce della cronologia precedente da non salvare. Un valore di ignorare entrambi is
scorciatoia per ignorare lo spazio e ignoredups. Un valore di cancellati causa tutti i precedenti
le righe corrispondenti alla riga corrente devono essere rimosse dall'elenco cronologico prima di quella
la riga viene salvata. Qualsiasi valore non presente nell'elenco soprastante viene ignorato. Se CONTROLLO STORICO is
non impostato o non include un valore valido, tutte le righe lette dall'analizzatore della shell sono
salvati nella cronologia, soggetti al valore di STORICOGNOREIl secondo e
le righe successive di un comando composto multi-riga non vengono testate e vengono aggiunte a
la storia indipendentemente dal valore di CONTROLLO STORICO.
ARCHIVIO
Il nome del file in cui viene salvata la cronologia dei comandi (vedere STORIA sotto). Il
il valore predefinito è ~/.bash_historySe non impostato, la cronologia dei comandi non viene salvata quando
esce una conchiglia.
DIMENSIONEFILESTORICO
Il numero massimo di righe contenute nel file cronologico. Quando questa variabile è
assegnato un valore, il file della cronologia viene troncato, se necessario, per non contenere più
di quel numero di righe rimuovendo le voci più vecchie. Anche il file della cronologia è
troncato a questa dimensione dopo averlo scritto quando una shell esce. Se il valore è 0, il
il file della cronologia viene troncato a dimensione zero. Valori non numerici e valori numerici minori
diverso da zero inibisce il troncamento. La shell imposta il valore predefinito sul valore di
HISTSIZE dopo aver letto tutti i file di avvio.
STORICOGNORE
Un elenco di modelli separati da due punti utilizzati per decidere quali righe di comando dovrebbero essere
salvato nella cronologia. Ogni modello è ancorato all'inizio della riga
e deve corrispondere alla riga completa (nessun ` implicito*' è aggiunto). Ogni modello è
testato contro la linea dopo i controlli specificati da CONTROLLO STORICO vengono applicati. In
oltre ai normali caratteri di corrispondenza del modello shell, `&' corrisponde al precedente
linea della storia. `&' può essere evitato utilizzando una barra rovesciata; la barra rovesciata viene rimossa
prima di tentare una corrispondenza. La seconda e le successive righe di un multi-line
i comandi composti non vengono testati e vengono aggiunti alla cronologia indipendentemente dal
valore di STORICOGNORE.
HISTSIZE
Il numero di comandi da ricordare nella cronologia dei comandi (vedere STORIA sotto). Se
il valore è 0, i comandi non vengono salvati nell'elenco cronologico. Valori numerici inferiori
diverso da zero, ogni comando viene salvato nell'elenco cronologico (non c'è
limite). La shell imposta il valore predefinito su 500 dopo aver letto qualsiasi file di avvio.
FORMATO STORICO DELL'ORA
Se questa variabile è impostata e non è null, il suo valore viene utilizzato come stringa di formato per
strftime(3) per stampare il timestamp associato a ciascuna voce della cronologia visualizzata da
, il storia builtin. Se questa variabile è impostata, i timestamp vengono scritti nel
file di cronologia in modo che possano essere conservati nelle sessioni della shell. Questo utilizza la cronologia
carattere di commento per distinguere i timestamp dalle altre righe della cronologia.
HOME La directory home dell'utente corrente; l'argomento predefinito per cd incorporato
comando. Il valore di questa variabile viene utilizzato anche quando si esegue l'espansione della tilde.
FILE HOST
Contiene il nome di un file nello stesso formato di / Etc / hosts che dovrebbe essere letto
quando la shell deve completare un nome host. L'elenco dei possibili nomi host
i completamenti possono essere modificati mentre la shell è in esecuzione; la prossima volta che hostname
il completamento viene tentato dopo che il valore è stato modificato, bash aggiunge il contenuto del
nuovo file all'elenco esistente. Se FILE HOST è impostato, ma non ha alcun valore, o non
nominare un file leggibile, bash tenta di leggere / Etc / hosts per ottenere l'elenco di
possibili completamenti del nome host. Quando FILE HOST non è impostato, l'elenco dei nomi host è
eliminato.
IFS . Interno Settore Separatore che viene utilizzato per la suddivisione delle parole dopo l'espansione e per
dividere le linee in parole con il read comando incorporato. Il valore predefinito è
`` ''.
IGNORANTE
Controlla l'azione di una shell interattiva alla ricezione di un EOF personaggio come il
unico input. Se impostato, il valore è il numero di input consecutivi EOF personaggi che
devono essere digitati come primi caratteri su una riga di input prima bash uscite. Se il
la variabile esiste ma non ha un valore numerico o non ha alcun valore, il valore predefinito
il valore è 10. Se non esiste, EOF indica la fine dell'input nella shell.
INPUTRC
Il nome del file per il readline file di avvio, sovrascrivendo l'impostazione predefinita di ~ / .inputrc
(Vedi LINEA DI LETTURA sotto).
LUNGO Utilizzato per determinare la categoria locale per qualsiasi categoria non specificatamente selezionata
con una variabile che inizia con LC_.
LC_TUTTI Questa variabile sovrascrive il valore di LUNGO e qualsiasi altro LC_ variabile che specifica un
categoria locale.
LC_COLLATE
Questa variabile determina l'ordine di confronto utilizzato quando si ordinano i risultati di
espansione del percorso e determina il comportamento delle espressioni di intervallo, equivalenza
classi e confronto delle sequenze all'interno dell'espansione del percorso e della corrispondenza dei modelli.
LC_CTYPE
Questa variabile determina l'interpretazione dei caratteri e il comportamento di
classi di caratteri all'interno dell'espansione del percorso e del pattern matching.
LC_MESSAGGI
Questa variabile determina le impostazioni locali utilizzate per tradurre le stringhe tra virgolette doppie
preceduto da a $.
LC_NUMERICO
Questa variabile determina la categoria locale utilizzata per la formattazione dei numeri.
LINEE Utilizzato dal select comando composto per determinare la lunghezza della colonna per la stampa
elenchi di selezione. Impostato automaticamente se il controlla la dimensione l'opzione è abilitata o in un
shell interattiva al ricevimento di un SIGWINCH.
MAIL Se questo parametro è impostato su un nome di file o directory e PERCORSO POSTALE la variabile è
non impostato, bash informa l'utente dell'arrivo della posta nel file specificato o
Directory in formato Maildir.
CONTROLLO POSTA
Specifica la frequenza (in secondi) bash controlla la posta. Il valore predefinito è 60 secondi.
Quando è il momento di controllare la posta, la shell lo fa prima di visualizzare la posta primaria
prompt. Se questa variabile non è impostata o è impostata su un valore che non è un numero maggiore
maggiore o uguale a zero, la shell disabilita il controllo della posta.
PERCORSO POSTALE
Un elenco di nomi di file separati da due punti da controllare per la posta. Il messaggio da controllare
stampato quando la posta arriva in un file particolare può essere specificato separando il
nome del file dal messaggio con un `?'. Quando utilizzato nel testo del messaggio, $_
si espande nel nome del file di posta corrente. Esempio:
PERCORSO POSTALE='/var/mail/bfox?"Hai posta":~/shell-mail?"$_ ha posta!"'
Bash fornisce un valore predefinito per questa variabile, ma la posizione della posta dell'utente
i file che utilizza dipendono dal sistema (ad esempio, /var/posta/$ USER).
OPTERR Se impostato sul valore 1, bash visualizza i messaggi di errore generati dal getopts
comando integrato (vedi SHELL COSTRUZIONE COMANDI sotto). OPTERR è inizializzato a 1
ogni volta che viene richiamata la shell o viene eseguito uno script della shell.
PERCORSO Il percorso di ricerca per i comandi. È un elenco di directory separate da due punti in cui
la shell cerca i comandi (vedi COMANDO ESECUZIONE sotto). Un valore di lunghezza zero (nullo)
nome della directory nel valore di PERCORSO indica la directory corrente. Un valore nullo
il nome della directory può apparire come due punti adiacenti o come iniziale o finale
due punti. Il percorso predefinito dipende dal sistema ed è impostato dall'amministratore che
installazioni bashUn valore comune è ``/ Usr / local / bin:/ usr / local / sbin:/ Usr / bin:
/ usr / sbin:/bidone:/ sbin''.
POSIXLY_CORRETTO
Se questa variabile è nell'ambiente quando bash inizia, la shell entra posix
modo prima di leggere i file di avvio, come se il --posix l'opzione di invocazione era stata
fornito. Se è impostato mentre la shell è in esecuzione, bash al posix modo, come se
il comando set -o posix era stato giustiziato.
PROMPT_COMANDO
Se impostato, il valore viene eseguito come comando prima di emettere ogni prompt primario.
PROMPT_DIRTRIM
Se impostato su un numero maggiore di zero, il valore viene utilizzato come numero di caratteri finali
componenti della directory da conservare durante l'espansione \w e \W stringa di prompt escape
(Vedi SUGGERIMENTO di seguito). I caratteri rimossi vengono sostituiti con un'ellissi.
PS1 Il valore di questo parametro viene espanso (vedere SUGGERIMENTO sotto) e utilizzato come
stringa di prompt primaria. Il valore predefinito è ``\s-\v\$ ''.
PS2 Il valore di questo parametro viene espanso come con PS1 e utilizzato come secondario
stringa di richiesta. Il valore predefinito è ``> ''.
PS3 Il valore di questo parametro viene utilizzato come prompt per il select comando (vedi SHELL
GRAMMATICA sopra).
PS4 Il valore di questo parametro viene espanso come con PS1 e il valore viene stampato prima
ogni comando bash viene visualizzato durante una traccia di esecuzione. Il primo carattere di PS4
viene replicato più volte, se necessario, per indicare più livelli di
indirezione. Il valore predefinito è ``+ ''.
SHELL Il percorso completo della shell viene mantenuto in questa variabile d'ambiente. Se non è
impostato all'avvio della shell, bash gli assegna il percorso completo del file corrente
shell di login dell'utente.
FORMATO ORA
Il valore di questo parametro viene utilizzato come stringa di formato che specifica come viene eseguita la temporizzazione
informazioni per le condotte precedute dal prefisso tempo dovrebbe essere visualizzata la parola riservata.
. % il carattere introduce una sequenza di escape che viene espansa in un valore temporale o
altre informazioni. Le sequenze di escape e i loro significati sono i seguenti;
le parentesi graffe indicano le parti facoltative.
%% Un letterale %.
%[p][l]R Il tempo trascorso in secondi.
%[p][l]U Numero di secondi di CPU trascorsi in modalità utente.
%[p][l]S Numero di secondi di CPU trascorsi in modalità di sistema.
%P Percentuale CPU, calcolata come (%U + %S) / %R.

Facoltativo p è una cifra che specifica il precisione, il numero di cifre frazionarie
dopo un punto decimale. Un valore pari a 0 non fa sì che venga visualizzato alcun punto decimale o frazione.
output. Possono essere specificati al massimo tre posti dopo la virgola; valori di p
maggiori di 3 vengono modificati in 3. Se p non è specificato, viene utilizzato il valore 3.

Facoltativo l specifica un formato più lungo, inclusi i minuti, del modulo 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
$'\nreale\t%3lR\nuser\t%3lU\nsys\t%3lS'Se il valore è nullo, nessuna temporizzazione
vengono visualizzate le informazioni. Una nuova riga finale viene aggiunta quando la stringa di formato è
visualizzato.
TMOUT Se impostato su un valore maggiore di zero, TMOUT viene trattato come timeout predefinito per
, il read incorporato Il select il comando termina se l'input non arriva dopo
TMOUT secondi quando l'input proviene da un terminale. In una shell interattiva, il
il valore viene interpretato come il numero di secondi da attendere per una riga di input dopo
emettendo il prompt primario. Bash termina dopo aver atteso quel numero di
secondi se non arriva una riga completa di input.
TMPDIR Se impostato, bash usa il suo valore come nome di una directory in cui bash crea
file temporanei per l'uso della shell.
ripresa automatica
Questa variabile controlla il modo in cui la shell interagisce con l'utente e il controllo del lavoro. Se
questa variabile è impostata, vengono trattati comandi semplici composti da una sola parola senza reindirizzamenti
come candidati per la ripresa di un lavoro interrotto. Non c'è ambiguità
consentito; se c'è più di un lavoro che inizia con la stringa digitata, il lavoro
è selezionato quello a cui si è avuto accesso più di recente. Nome di un lavoro interrotto, in questo contesto, è
la riga di comando utilizzata per avviarlo. Se impostato sul valore esattamente, la stringa fornita
deve corrispondere esattamente al nome di un lavoro interrotto; se impostato su sottostringa, la stringa
fornito deve corrispondere a una sottostringa del nome di un lavoro interrotto. Il sottostringa
il valore fornisce funzionalità analoghe a %? identificatore del lavoro (vedi JOB CONTROLLO
di seguito). Se impostato su qualsiasi altro valore, la stringa fornita deve essere un prefisso di un
nome del lavoro interrotto; questo fornisce funzionalità analoghe a %stringa lavoro
identificatore.
Histchar
I due o tre caratteri che controllano l'espansione della storia e la tokenizzazione (vedi
STORIA ESPANSIONE sotto). Il primo carattere è il storia espansione personaggio,
il carattere che segnala l'inizio di un'espansione della storia, normalmente `!'. Il
il secondo carattere è il veloce sostituzione carattere, che viene utilizzato come abbreviazione
per rieseguire il comando precedentemente immesso, sostituendo una stringa con un'altra in
il comando. Il valore predefinito è `^'. Il terzo carattere facoltativo è il carattere
che indica che il resto della riga è un commento quando viene trovato come primo
carattere di una parola, normalmente `#'. Il carattere di commento della cronologia causa la cronologia
sostituzione da saltare per le parole rimanenti sulla riga. Non
fa sì che l'analizzatore della shell tratti il ​​resto della riga come un commento.

Array
Bash fornisce variabili array indicizzate e associative unidimensionali. Qualsiasi variabile può
essere utilizzato come un array indicizzato; il dichiarare builtin dichiarerà esplicitamente un array. Lì
non esiste un limite massimo per la dimensione di un array, né alcun requisito che i membri siano indicizzati
o assegnati in modo contiguo. Gli array indicizzati sono referenziati utilizzando numeri interi (inclusi
espressioni aritmetiche) e sono basate su zero; gli array associativi sono referenziati utilizzando
stringhe arbitrarie. Salvo diversa indicazione, gli indici degli array indicizzati devono essere non negativi
interi.

Un array indicizzato viene creato automaticamente se una variabile viene assegnata utilizzando la sintassi
Nome[pedice]=APPREZZIAMO. pedice viene trattato come un'espressione aritmetica che deve
restituire un numero. Per dichiarare esplicitamente un array indicizzato, utilizzare dichiarare -a Nome (Vedi
SHELL COSTRUZIONE COMANDI sotto). dichiarare -a Nome[pedice] è anche accettato; il pedice
viene ignorato.

Gli array associativi vengono creati utilizzando dichiarare -A Nome.

Gli attributi possono essere specificati per una variabile array utilizzando dichiarare e in sola lettura incorporati.
Ogni attributo si applica a tutti i membri di un array.

Gli array vengono assegnati utilizzando assegnazioni composte della forma Nome=(APPREZZIAMO1 ... valoren),
dove ciascuno APPREZZIAMO è della forma [pedice]=stringaLe assegnazioni di array indicizzati non
richiedono qualsiasi cosa tranne stringa. Quando si assegna ad array indicizzati, se le parentesi facoltative
e l'indice sono forniti, a cui è assegnato l'indice; altrimenti l'indice dell'elemento
assegnato è l'ultimo indice assegnato dall'istruzione più uno. L'indicizzazione inizia da
zero.

Quando si assegna a un array associativo, è obbligatorio l'indice.

Questa sintassi è accettata anche da dichiarare incorporato. I singoli elementi dell'array possono essere
assegnato all'utilizzo del Nome[pedice]=APPREZZIAMO sintassi introdotta sopra. Quando si assegna a un
array indicizzato, se Nome è indicizzato da un numero negativo, quel numero viene interpretato come
rispetto a uno maggiore dell'indice massimo di Nome, quindi gli indici negativi contano all'indietro
dalla fine dell'array e un indice di -1 fa riferimento all'ultimo elemento.

È possibile fare riferimento a qualsiasi elemento di un array utilizzando ${Nome[pedice]}. Le parentesi graffe sono
necessario per evitare conflitti con l'espansione del percorso. Se pedice is @ or *, la parola
si estende a tutti i membri di NomeQuesti pedici differiscono solo quando la parola appare all'interno
virgolette doppie. Se la parola è tra virgolette doppie, ${Nome[*]} si espande in una singola parola con il
valore di ciascun membro dell'array separato dal primo carattere dell' IFS variabile speciale,
e ${Nome[@]} espande ogni elemento di Nome in una parola separata. Quando non ci sono array
membri, ${Nome[@]} non si espande in nulla. Se l'espansione tra virgolette doppie si verifica all'interno di un
parola, l'espansione del primo parametro è unita alla parte iniziale della
parola originale, e l'espansione dell'ultimo parametro è unita all'ultima parte del
parola originale. Ciò è analogo all'espansione dei parametri speciali * e @ (Vedi
Special Scheda Sintetica sopra). ${#Nome[pedice]} si espande fino alla lunghezza di
${Nome[pedice]}. Se pedice is * or @, l'espansione è il numero di elementi in
l'array. Fare riferimento a una variabile array senza un indice equivale a fare riferimento
l'array con un indice di 0. Se il pedice utilizzato per fare riferimento a un elemento di un
array indicizzato valuta un numero minore di zero, viene interpretato come relativo a uno
maggiore dell'indice massimo dell'array, quindi gli indici negativi vengono contati a ritroso dalla fine
dell'array e un indice di -1 fa riferimento all'ultimo elemento.

Una variabile array è considerata impostata se a un indice è stato assegnato un valore. Il valore nullo
stringa è un valore valido.

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

. non settato builtin viene utilizzato per distruggere gli array. non settato Nome[pedice] distrugge l'array
elemento all'indice pediceGli indici negativi degli array indicizzati vengono interpretati come
descritto sopra. Bisogna fare attenzione ad evitare effetti collaterali indesiderati causati dal percorso
espansione. non settato NomeDurante la serata, Nome è un array, o non settato Nome[pedice], dove pedice
is * or @, rimuove l'intero array.

. dichiarare, localee in sola lettura i builtin accettano ciascuno un -a opzione per specificare un indicizzato
matrice e un -A opzione per specificare un array associativo. Se vengono fornite entrambe le opzioni, -A
ha la precedenza. Il read builtin accetta un -a possibilità di assegnare un elenco di parole lette
dall'input standard a un array. Il set e dichiarare i valori predefiniti visualizzano gli array in
un modo che consenta di riutilizzarli come compiti.

ESPANSIONE


L'espansione viene eseguita sulla riga di comando dopo che è stata divisa in parole. Ci sono
sette tipi di espansione eseguiti: bretelle espansione, tilde espansione, parametro e
variabile espansione, command sostituzione, aritmetica espansione, parola scissionee
pathname espansione.

L'ordine delle espansioni è: espansione della parentesi graffa; espansione della tilde, parametro e variabile
espansione, espansione aritmetica e sostituzione di comando (eseguita da sinistra a destra)
moda); suddivisione delle parole; ed espansione del percorso.

Nei sistemi che lo supportano è disponibile un'ulteriore espansione: processi
sostituzione. Questo viene eseguito contemporaneamente a tilde, parametro, variabile e
espansione aritmetica e sostituzione di comando.

Solo l'espansione delle parentesi graffe, la suddivisione delle parole e l'espansione del percorso possono modificare il numero di
parole dell'espansione; altre espansioni espandono una singola parola in una singola parola. L'unica
eccezioni a questo sono le espansioni di "$@" e "${Nome[@]}" come spiegato sopra (vedi
PARAMETRI).

Bretelle Espansione
Bretelle espansione è un meccanismo mediante il quale possono essere generate stringhe arbitrarie. Questo
il meccanismo è simile a pathname espansione, ma i nomi dei file generati non devono necessariamente esistere.
I modelli da espandere assumono la forma di un optional preambolo, seguito da un
serie di stringhe separate da virgole o un'espressione di sequenza tra una coppia di parentesi graffe,
seguito da un facoltativo poscrittoIl preambolo è anteposto a ciascuna stringa contenuta
all'interno delle parentesi graffe, e il postscript viene quindi aggiunto a ciascuna stringa risultante, espandendo
da sinistra a destra.

Le espansioni delle parentesi graffe possono essere annidate. I risultati di ogni stringa espansa non vengono ordinati; a sinistra
l'ordine corretto è preservato. Ad esempio, un{d,c,b}e si espande in `ade ace abe'.

Un'espressione di sequenza assume la forma {x..y[..aumento]}Durante la serata, x e y sono numeri interi o
singoli caratteri e aumento, un incremento facoltativo, è un numero intero. Quando gli interi sono
fornito, l'espressione si espande a ciascun numero compreso tra x e y, incluso. Fornito
gli interi possono essere preceduti da 0 per forzare ogni termine ad avere la stessa larghezza. Quando uno dei due x
or y inizia con uno zero, la shell tenta di forzare tutti i termini generati a contenere il
stesso numero di cifre, aggiungendo zeri dove necessario. Quando vengono forniti caratteri, il
l'espressione si espande lessicograficamente a ciascun carattere tra x e y, inclusivo, utilizzando
le impostazioni locali predefinite C. Nota che entrambi x e y devono essere dello stesso tipo. Quando il
viene fornito l'incremento, viene utilizzato come differenza tra ciascun termine. Il valore predefinito
l'incremento è 1 o -1 a seconda dei casi.

L'espansione delle parentesi graffe viene eseguita prima di qualsiasi altra espansione e di qualsiasi carattere speciale per
altre espansioni sono conservate nel risultato. È strettamente testuale. Bash non
applicare qualsiasi interpretazione sintattica al contesto dell'espansione o del testo tra
parentesi graffe.

Un'espansione di parentesi graffe correttamente formata deve contenere parentesi graffe di apertura e chiusura non tra virgolette e
almeno una virgola non tra virgolette o un'espressione di sequenza valida. Qualsiasi parentesi graffa formata in modo errato
l'espansione rimane invariata. A { or , può essere citato con una barra rovesciata per impedirne l'uso
considerata parte di un'espressione tra parentesi graffe. Per evitare conflitti con l'espansione dei parametri,
stringa ${ non è considerato idoneo all'espansione del tutore.

Questa costruzione è in genere utilizzata come abbreviazione quando il prefisso comune delle stringhe da
generato è più lungo rispetto all'esempio precedente:

mkdir /usr/local/src/bash/{vecchio,nuovo,dist,bug}
or
radice di chown / usr /{ucb/{es,modifica},lib/{es?.?*,come_es}}

L'espansione delle parentesi graffe introduce una leggera incompatibilità con le versioni storiche di sh. sh
non tratta le parentesi graffe di apertura o chiusura in modo speciale quando appaiono come parte di una parola, e
li conserva nell'output. Bash rimuove le parentesi graffe dalle parole come conseguenza della parentesi graffa
espansione. Ad esempio, una parola inserita per sh as fascicolo{1,2} appare in modo identico nel
output. La stessa parola viene emessa come file1 file2 dopo l'espansione di bashSe rigoroso
compatibilità con sh è desiderato, iniziare bash con la +B opzione o disabilita l'espansione delle parentesi graffe
con la +B opzione per il set comando (vedi SHELL COSTRUZIONE COMANDI sotto).

tilde Espansione
Se una parola inizia con un carattere tilde non racchiuso tra virgolette (`~'), tutti i caratteri che precedono
la prima barra non quotata (o tutti i caratteri, se non c'è una barra non quotata) sono considerati
a prefisso tildeSe nessuno dei caratteri nel prefisso tilde è tra virgolette, i caratteri
nel prefisso tilde che segue la tilde sono trattati come un possibile accesso Nome. Se questo
il nome di accesso è la stringa nulla, la tilde viene sostituita con il valore del parametro shell
HOME. Se HOME non è impostato, la directory home dell'utente che esegue la shell viene sostituita
invece. Altrimenti, il prefisso tilde viene sostituito con la directory home associata a
il nome di accesso specificato.

Se il prefisso tilde è `~+', il valore della variabile shell PWD sostituisce la tilde-
prefisso. Se il prefisso tilde è `~-', il valore della variabile shell VECCHIO PWD, se è
set, viene sostituito. Se i caratteri che seguono la tilde nel prefisso tilde sono costituiti da
un numero N, opzionalmente preceduto da un `+' o un `-', il prefisso tilde viene sostituito con
elemento corrispondente dallo stack delle directory, come verrebbe visualizzato dal dirs
builtin richiamato con il prefisso tilde come argomento. Se i caratteri che seguono il
la tilde nel prefisso tilde è costituita da un numero senza `+' o `-' iniziale, `+' è
presunto.

Se il nome di accesso non è valido o l'espansione della tilde non riesce, la parola rimane invariata.

Ogni assegnazione di variabile viene controllata per i prefissi tilde non quotati immediatamente dopo un :
o il primo =In questi casi si esegue anche l'espansione della tilde. Di conseguenza, si può
utilizzare nomi di file con tilde nelle assegnazioni a PERCORSO, PERCORSO POSTALEe CDPATHe il guscio
assegna il valore espanso.

Parametro Espansione
Il `$Il carattere ' introduce l'espansione dei parametri, la sostituzione dei comandi o l'aritmetica
espansione. Il nome del parametro o il simbolo da espandere può essere racchiuso tra parentesi graffe, che
sono facoltativi ma servono a proteggere la variabile da espandere dai caratteri immediatamente
che lo segue e che potrebbe essere interpretato come parte del nome.

Quando si usano le parentesi graffe, la parentesi graffa finale corrispondente è la prima `}' non sfuggito da un
barra rovesciata o all'interno di una stringa tra virgolette, e non all'interno di un'espansione aritmetica incorporata,
sostituzione di comando o espansione di parametro.

${parametro}
Il valore di parametro viene sostituito. Le parentesi graffe sono necessarie quando parametro è un
parametro posizionale con più di una cifra, o quando parametro è seguito da a
carattere che non deve essere interpretato come parte del suo nome. Il parametro è un
parametro shell come descritto sopra PARAMETRI) o un riferimento array (Array).

Se il primo carattere di parametro è un punto esclamativo (!), introduce un livello di
indirezione variabile. Bash utilizza il valore della variabile formata dal resto di
parametro come il nome della variabile; questa variabile viene quindi espansa e quel valore è
utilizzato nel resto della sostituzione, piuttosto che il valore di parametro stesso. Questo è
conosciuto come indiretto espansioneLe eccezioni a questo sono le espansioni di ${!prefisso*} e
${!Nome[@]} descritto di seguito. Il punto esclamativo deve seguire immediatamente la parentesi graffa sinistra
per introdurre l'indirezione.

In ciascuno dei casi sottostanti, parola è soggetto all'espansione della tilde, all'espansione dei parametri,
sostituzione di comando ed espansione aritmetica.

Quando non si esegue l'espansione della sottostringa, utilizzando i moduli documentati di seguito (ad esempio, :-), bash
verifica un parametro non impostato o nullo. L'omissione dei due punti determina solo un test
per un parametro non impostato.

${parametro:-parola}
Usa il Predefinito Valori. Se parametro non è impostato o è nullo, l'espansione di parola is
sostituito. Altrimenti, il valore di parametro è sostituito.
${parametro:=parola}
Assegna Predefinito Valori. Se parametro non è impostato o è nullo, l'espansione di parola is
assegnato a parametro. Il valore di parametro viene quindi sostituito. Posizionale
parametri e parametri speciali non possono essere assegnati in questo modo.
${parametro:?parola}
Display Errore if Nullo or unset. Se parametro è nullo o non impostato, l'espansione di
parola (o un messaggio in tal senso se parola non è presente) viene scritto nel
errore standard e la shell, se non è interattiva, esce. Altrimenti, il
valore di parametro è sostituito.
${parametro:+parola}
Usa il Alternato Valore. Se parametro è nullo o non impostato, nulla viene sostituito,
altrimenti l'espansione di parola è sostituito.
${parametro:offset}
${parametro:offset:lunghezza}
Sottostringa Espansione. Si espande fino a lunghezza caratteri del valore di parametro
a partire dal carattere specificato da offset. Se parametro is @, un array indicizzato
sottoscritto da @ or *, o un nome di array associativo, i risultati differiscono come
descritto di seguito. Se lunghezza viene omesso, si espande alla sottostringa del valore di
parametro a partire dal carattere specificato da offset e si estende fino alla fine di
il valore. lunghezza e offset sono espressioni aritmetiche (vedi ARITMETICA VALUTAZIONE
sotto).

If offset restituisce un numero minore di zero, il valore viene utilizzato come offset in
caratteri dalla fine del valore di parametro. Se lunghezza restituisce un numero
minore di zero, viene interpretato come uno spostamento in caratteri dalla fine del
valore di parametro piuttosto che un numero di personaggi, e l'espansione è la
caratteri tra offset e quel risultato. Nota che deve essere un offset negativo
separati dai due punti da almeno uno spazio per evitare di essere confusi con il :-
espansione.

If parametro is @, il risultato è lunghezza parametri posizionali a partire da offset.
Un negativo offset è preso in relazione a uno maggiore della massima posizione
parametro, quindi un offset di -1 viene valutato come l'ultimo parametro posizionale. È un
errore di espansione se lunghezza restituisce un numero minore di zero.

If parametro è un nome di array indicizzato con indice @ o *, il risultato è
lunghezza membri dell'array che iniziano con ${parametro[offset]}. Un negativo offset
viene preso in relazione a uno maggiore dell'indice massimo dell'array specificato. Esso
è un errore di espansione se lunghezza restituisce un numero minore di zero.

L'espansione della sottostringa applicata a un array associativo produce risultati indefiniti.

L'indicizzazione delle sottostringhe è basata su zero a meno che non vengano utilizzati i parametri posizionali, in
in tal caso l'indicizzazione inizia da 1 per impostazione predefinita. Se offset è 0 e il posizionale
vengono utilizzati i parametri, $0 è preceduto dall'elenco.

${!prefisso*}
${!prefisso@}
nomi corrispondenza prefisso. Si espande ai nomi delle variabili i cui nomi iniziano con
prefisso, separati dal primo carattere del IFS variabile speciale. Quando @ is
utilizzato e l'espansione appare tra virgolette doppie, ogni nome di variabile si espande in
una parola separata.

${!Nome[@]}
${!Nome[*]}
Lista of schieramento Tasti. Se Nome è una variabile array, si espande nell'elenco dell'array
indici (chiavi) assegnati in Nome. Se Nome non è un array, si espande a 0 se Nome is
impostato e null altrimenti. Quando @ viene utilizzato e l'espansione appare entro il doppio
tra virgolette, ogni chiave si espande in una parola separata.

${#parametro}
Parametro lunghezzaLa lunghezza in caratteri del valore di parametro is
sostituito. Se parametro is * or @, il valore sostituito è il numero di
parametri posizionali. Se parametro è un nome di array con indice * or @, l'
il valore sostituito è il numero di elementi nell'array. Se parametro offre
nome dell'array indicizzato con un numero negativo, tale numero viene interpretato come
rispetto a uno maggiore dell'indice massimo di parametro, quindi indici negativi
contare all'indietro dalla fine dell'array e un indice di -1 fa riferimento all'ultimo
elemento.

${parametro#parola}
${parametro##parola}
Rimuovere corrispondenza prefisso modello. parola viene espanso per produrre un modello proprio come
nell'espansione del percorso. Se il modello corrisponde all'inizio del valore di
parametro, allora il risultato dell'espansione è il valore espanso di parametro con
il modello di corrispondenza più breve (il ``#'' caso) o il modello corrispondente più lungo (il
``##'' caso) cancellato. Se parametro is @ or *, l'operazione di rimozione del modello è
applicato a turno a ciascun parametro posizionale, e l'espansione è la risultante
elenco. Se parametro è una variabile array indicizzata con @ or *, il modello
l'operazione di rimozione viene applicata a turno a ciascun membro dell'array e l'espansione
è l'elenco risultante.

${parametro%parola}
${parametro%%parola}
Rimuovere corrispondenza suffisso modello. parola viene espanso per produrre un modello proprio come
nell'espansione del percorso. Se il modello corrisponde a una parte finale del percorso espanso
valore di parametro, allora il risultato dell'espansione è il valore espanso di
parametro con il modello corrispondente più breve (il ``%'' caso) o il più lungo
modello corrispondente (il ``%%'' caso) cancellato. Se parametro is @ or *, il modello
l'operazione di rimozione viene applicata a turno a ciascun parametro posizionale e
l'espansione è l'elenco risultante. Se parametro è una variabile array con indice
con @ or *, l'operazione di rimozione del pattern viene applicata a ciascun membro dell'array
a sua volta, e l'espansione è l'elenco risultante.

${parametro/modello/stringa}
Cartamodello sostituzione. modello viene espanso per produrre un modello proprio come in
espansione del percorso. Parametro è espanso e la partita più lunga di modello contro di
il suo valore è sostituito con stringa. Se modello inizia con /, tutte le partite di
modello sono sostituiti con stringa. Normalmente viene sostituita solo la prima corrispondenza. Se
modello inizia con #, deve corrispondere all'inizio del valore espanso di
parametro. Se modello inizia con %, deve corrispondere alla fine dell'espanso
valore di parametro. Se stringa è nullo, corrisponde a modello vengono cancellati e il /
i seguenti modello può essere omesso. Se parametro is @ or *, la sostituzione
l'operazione viene applicata a turno a ciascun parametro posizionale e l'espansione è la
elenco risultante. Se parametro è una variabile array indicizzata con @ or *, l'
l'operazione di sostituzione viene applicata a turno a ciascun membro dell'array e
l'espansione è l'elenco risultante.

${parametro^modello}
${parametro^^modello}
${parametro,modello}
${parametro,,modello}
Custodie quale modificaQuesta espansione modifica il caso dei caratteri alfabetici in
parametro. modello viene espanso per produrre un modello proprio come in pathname
espansione. Ogni carattere nel valore espanso di parametro è testato contro
modelloe, se corrisponde al modello, il suo caso viene convertito. Il modello dovrebbe
non tentare di abbinare più di un carattere. Il ^ l'operatore converte le lettere minuscole
lettere corrispondenti modello in maiuscolo; il , l'operatore converte le lettere maiuscole corrispondenti
lettere in minuscolo. Il ^^ e ,, le espansioni convertono ogni carattere corrispondente in
il valore espanso; il ^ e , le espansioni corrispondono e convertono solo il primo
carattere nel valore espanso. Se modello viene omesso, viene trattato come un ?,
che corrisponde a ogni carattere. Se parametro is @ or *, la modifica del caso
l'operazione viene applicata a turno a ciascun parametro posizionale e l'espansione è la
elenco risultante. Se parametro è una variabile array indicizzata con @ or *, l'
l'operazione di modifica del caso viene applicata a turno a ciascun membro dell'array e
l'espansione è l'elenco risultante.

Comando Sostituzione
Comando sostituzione consente all'output di un comando di sostituire il nome del comando. C'è
sono due forme:

$(command)
or
`command`

Bash esegue l'espansione eseguendo command e sostituendo la sostituzione del comando
con l'output standard del comando, con eventuali nuove righe finali eliminate. Incorporato
le nuove righe non vengono eliminate, ma possono essere rimosse durante la suddivisione delle parole. Il comando
sostituzione $(gatto filetto) può essere sostituito dall'equivalente ma più veloce $( filetto).

Quando viene utilizzata la vecchia forma di sostituzione con virgolette rovesciate, la barra rovesciata mantiene il suo valore letterale
significato tranne quando seguito da $, `, o \. La prima citazione inversa non preceduta da un
La barra rovesciata termina la sostituzione di comando. Quando si utilizza $(command) forma, tutto
i caratteri tra parentesi costituiscono il comando; nessuno di essi viene trattato in modo speciale.

Le sostituzioni di comando possono essere annidate. Per annidare quando si utilizza la forma con virgolette inverse, usare l'escape
virgolette interne con barre rovesciate.

Se la sostituzione appare tra virgolette doppie, la suddivisione delle parole e l'espansione del percorso
non vengono eseguiti sui risultati.

Aritmetica Espansione
L'espansione aritmetica consente la valutazione di un'espressione aritmetica e la
sostituzione del risultato. Il formato per lo sviluppo aritmetico è:

$((espressione))

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

. espressione viene trattato come se fosse tra virgolette doppie, ma una virgoletta doppia all'interno
le parentesi non vengono trattate in modo speciale. Tutti i token nell'espressione subiscono il parametro
e l'espansione delle variabili, la sostituzione dei comandi e la rimozione delle virgolette. Il risultato viene trattato come
l'espressione aritmetica da valutare. Le espansioni aritmetiche possono essere annidate.

La valutazione viene effettuata secondo le regole di seguito elencate ARITMETICA
VALUTAZIONE. Se espressione non è valido, bash stampa un messaggio che indica errore e no
si verifica la sostituzione.

Processo Sostituzione
Processo sostituzione è supportato sui sistemi che supportano le pipe denominate (FIFO) O l'
/dev/fd metodo di denominazione dei file aperti. Assume la forma di <(stratagemma) or >(stratagemma).
processi stratagemma viene eseguito con il suo input o output collegato a un FIFO o qualche file in /dev/fd.
Il nome di questo file viene passato come argomento al comando corrente come risultato del
espansione. Se il >(stratagemma) viene utilizzato il modulo, la scrittura sul file fornirà input per stratagemma.
Se l' <(stratagemma) viene utilizzato il modulo, il file passato come argomento deve essere letto per ottenere il
uscita di stratagemma.

Quando disponibile, la sostituzione del processo viene eseguita simultaneamente con i parametri e
espansione di variabili, sostituzione di comandi ed espansione aritmetica.

Word Scissione
La shell analizza i risultati dell'espansione dei parametri, della sostituzione dei comandi e dell'aritmetica
espansione che non si è verificata tra virgolette doppie per parola scissione.

La shell tratta ogni carattere di IFS come delimitatore e divide i risultati dell'altro
espansioni in parole utilizzando questi caratteri come terminatori di campo. Se IFS non è impostato, o
il suo valore è esattamente , l'impostazione predefinita, quindi sequenze di , ,
e all'inizio e alla fine dei risultati delle espansioni precedenti sono
ignorato e qualsiasi sequenza di IFS i caratteri non all'inizio o alla fine servono a delimitare
parole. Se IFS ha un valore diverso da quello predefinito, quindi sequenze di spazi vuoti
caratteri spazio e linguetta vengono ignorati all'inizio e alla fine della parola, purché
il carattere di spazio vuoto è nel valore di IFS (un IFS carattere di spazio vuoto). Qualsiasi carattere
in IFS quello non è IFS spazi vuoti, insieme a qualsiasi adiacente IFS caratteri di spazio vuoto,
delimita un campo. Una sequenza di IFS Anche gli spazi vuoti vengono trattati come delimitatori.
Se il valore di IFS è nullo, non si verifica alcuna suddivisione delle parole.

Argomenti nulli espliciti ("" or '') vengono mantenuti. Argomenti nulli impliciti non quotati,
risultanti dall'espansione dei parametri che non hanno valori, vengono rimossi. Se un
parametro senza valore viene espanso tra virgolette doppie, il risultato è un argomento nullo ed è
trattenuto.

Si noti che se non si verifica alcuna espansione, non viene eseguita alcuna divisione.

Pathname Espansione
Dopo la divisione delle parole, a meno che il -f è stata impostata l'opzione, bash analizza ogni parola per la
caratteri *, ?e [Se appare uno di questi caratteri, la parola è considerata come
a modelloe sostituito con un elenco ordinato alfabeticamente di nomi di file corrispondenti a
modello (vedi Cartamodello Abbinare di seguito). Se non vengono trovati nomi di file corrispondenti e la shell
opzione nullglob non è abilitato, la parola rimane invariata. Se il nullglob opzione è
impostato e non vengono trovate corrispondenze, la parola viene rimossa. Se failglob l'opzione shell è impostata,
e non vengono trovate corrispondenze, viene stampato un messaggio di errore e il comando non viene eseguito. Se
l'opzione shell nocaseglob è abilitato, la corrispondenza viene eseguita senza riguardo al caso
di caratteri alfabetici. Si noti che quando si utilizzano espressioni di intervallo come [az] (vedere di seguito),
lettere dell'altro caso possono essere incluse, a seconda dell'impostazione di LC_COLLATE. Quando
il pattern viene utilizzato per l'espansione del percorso, il carattere ``.'' all'inizio di un nome o
immediatamente dopo una barra deve essere abbinato esplicitamente, a meno che l'opzione shell dotglob
è impostato. Quando si cerca una corrispondenza con un percorso, il carattere barra deve sempre essere abbinato in modo esplicito.
In altri casi, il file ``.'' il personaggio non è trattato in modo speciale. Vedi la descrizione di
negozio sotto sotto SHELL COSTRUZIONE COMANDI per una descrizione del nocaseglob, nullglob,
failglobe dotglob opzioni shell.

. GLOBIGNORE la variabile shell può essere utilizzata per limitare l'insieme dei nomi di file corrispondenti a un
modello. Se GLOBIGNORE è impostato, ogni nome di file corrispondente che corrisponde anche a uno dei
modelli in GLOBIGNORE viene rimosso dall'elenco delle corrispondenze. I nomi dei file ``.'' e
``..'' vengono sempre ignorati quando GLOBIGNORE è impostato e non nullo. Tuttavia, l'impostazione
GLOBIGNORE a un valore non nullo ha l'effetto di abilitare il dotglob opzione shell, quindi tutto
altri nomi di file che iniziano con a ``.'' corrisponderà. Per ottenere il vecchio comportamento di ignorare
nomi di file che iniziano con a ``.'', rendere ``.*'' uno dei modelli in GLOBIGNORE.
dotglob l'opzione è disabilitata quando GLOBIGNORE non è impostato.

Cartamodello Abbinare

Qualsiasi carattere che appare in un pattern, diverso dai caratteri speciali del pattern
descritto di seguito, corrisponde a se stesso. Il carattere NUL non può verificarsi in un modello. Un
la barra rovesciata esegue l'escape del carattere seguente; la barra rovesciata di escape viene scartata quando
corrispondenza. I caratteri speciali del modello devono essere racchiusi tra virgolette se devono essere abbinati
letteralmente.

I caratteri speciali hanno i seguenti significati:

* Corrisponde a qualsiasi stringa, inclusa la stringa nulla. Quando il stella globulare conchiglia
l'opzione è abilitata e * viene utilizzato in un contesto di espansione del percorso, due
adiacente *s utilizzato come un singolo modello corrisponderà a tutti i file e a zero o più
directory e sottodirectory. Se seguito da un /, due adiacenti *la volontà di s
corrispondono solo alle directory e alle sottodirectory.
? Corrisponde a qualsiasi singolo carattere.
[...] Corrisponde a uno qualsiasi dei caratteri racchiusi. Una coppia di caratteri separati
con un trattino indica un gamma espressione; qualsiasi carattere che rientra tra
quei due caratteri, inclusi, utilizzando il confronto delle impostazioni locali correnti
sequenza e set di caratteri, viene abbinato. Se il primo carattere seguente
, il [ è un ! o ^ quindi qualsiasi carattere non racchiuso viene abbinato. Il
l'ordine di ordinamento dei caratteri nelle espressioni di intervallo è determinato da
impostazioni locali correnti e i valori di LC_COLLATE or LC_TUTTI variabili shell,
se impostato. Per ottenere l'interpretazione tradizionale delle espressioni di intervallo,
where [anno Domini] è equivalente [abcd], imposta il valore del LC_TUTTI variabile di shell
a C, oppure abilitare il globasciiranges opzione shell. A - può essere abbinato a
includendolo come primo o ultimo carattere nel set. A ] può essere abbinato
includendolo come primo carattere nel set.

Nel quadro di [ e ], carattere classi può essere specificato utilizzando la sintassi
[:classe:]Durante la serata, classe è una delle seguenti classi definite in POSIX
standard:
alum alfa ascii vuoto ctrl cifra grafico abbassarla stampare punto spazio superiore parola
xcifra
Una classe di caratteri corrisponde a qualsiasi carattere appartenente a quella classe. parola
la classe di caratteri corrisponde a lettere, cifre e al carattere _.

Nel quadro di [ e ], una equivalenza classe può essere specificato utilizzando la sintassi
[=c=], che corrisponde a tutti i caratteri con lo stesso peso di collazione (come
definito dalle impostazioni locali correnti) come carattere c.

Nel quadro di [ e ], la sintassi [.simbolo.] corrisponde al simbolo di collazione simbolo.

Se l' extglob l'opzione shell è abilitata utilizzando negozio incorporato, diversi modelli estesi
vengono riconosciuti gli operatori di corrispondenza. Nella seguente descrizione, un lista-modello è una lista
di uno o più modelli separati da un |I modelli compositi possono essere formati utilizzando uno o
altri dei seguenti sottomodelli:

?(lista-modello)
Corrisponde a zero o a una occorrenza dei modelli specificati
*(lista-modello)
Corrisponde a zero o più occorrenze dei modelli specificati
+(lista-modello)
Corrisponde a una o più occorrenze dei modelli specificati
@(lista-modello)
Corrisponde a uno dei modelli forniti
!(lista-modello)
Corrisponde a tutto tranne uno dei modelli forniti

Quote Rimozione
Dopo le espansioni precedenti, tutte le occorrenze non quotate dei caratteri \, 'e "
che non sono il risultato di una delle espansioni di cui sopra vengono rimossi.

REINDIRIZZAZIONE


Prima che un comando venga eseguito, il suo input e output possono essere reindirizzato utilizzando uno speciale
notazione interpretata dalla shell. Il reindirizzamento consente di gestire i file dei comandi
duplicati, aperti, chiusi, fatti per riferirsi a file diversi e possono modificare i file
il comando legge da e scrive su. Il reindirizzamento può anche essere utilizzato per modificare i gestori dei file in
l'ambiente di esecuzione della shell corrente. I seguenti operatori di reindirizzamento possono precedere
o apparire ovunque all'interno di un semplice command o può seguire un commandI reindirizzamenti sono
elaborati nell'ordine in cui appaiono, da sinistra a destra.

Ogni reindirizzamento che può essere preceduto da un numero descrittore di file può invece essere preceduto
da una parola della forma {nomevar}. In questo caso, per ogni operatore di reindirizzamento eccetto >&-
e <&-, la shell allocherà un descrittore di file maggiore o uguale a 10 e assegnerà
ad nomevarSe >&- o <&- è preceduto da {nomevar}, il valore di nomevar definisce il
descrittore di file da chiudere.

Nelle descrizioni seguenti, se il numero del descrittore del file viene omesso e il primo
il carattere dell'operatore di reindirizzamento è <, il reindirizzamento si riferisce all'input standard
(descrittore di file 0). Se il primo carattere dell'operatore di reindirizzamento è >, l'
il reindirizzamento si riferisce all'output standard (descrittore di file 1).

La parola che segue l'operatore di reindirizzamento nelle seguenti descrizioni, a meno che
altrimenti indicato, è soggetto all'espansione della parentesi graffa, all'espansione della tilde, al parametro e alla variabile
espansione, sostituzione di comando, espansione aritmetica, rimozione delle virgolette, espansione del percorso,
e la suddivisione delle parole. Se si espande a più di una parola, bash segnala un errore.

Si noti che l'ordine delle redirezioni è significativo. Ad esempio, il comando

ls > dirlist 2>&1

indirizza sia l'output standard che l'errore standard al file dirlist, mentre il comando

È 2>&1 > dirlist

indirizza solo l'output standard al file dirlist, perché l'errore standard era
duplicato dall'output standard prima che l'output standard venisse reindirizzato a dirlist.

Bash gestisce diversi nomi di file, in particolare quando vengono utilizzati nei reindirizzamenti, come descritto
nella tabella seguente:

/dev/fd/fd
If fd è un intero valido, 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/porto
If host è un nome host o un indirizzo Internet valido e porto è una porta intera
numero o nome del servizio, bash tenta di aprire il socket TCP corrispondente.
/dev/udp/host/porto
If host è un nome host o un indirizzo Internet valido e porto è una porta intera
numero o nome del servizio, bash tenta di aprire il socket UDP corrispondente.

Un errore nell'apertura o nella creazione di un file determina il fallimento del reindirizzamento.

I reindirizzamenti che utilizzano descrittori di file maggiori di 9 devono essere utilizzati con cautela, poiché potrebbero
conflitto con i descrittori di file utilizzati internamente dalla shell.

Notare quello exec Il comando builtin può far sì che i reindirizzamenti abbiano effetto nella shell corrente.

Reindirizzamento Ingresso
Il reindirizzamento dell'input fa sì che il file il cui nome risulta dall'espansione di parola essere
aperto per la lettura sul descrittore di file n, o l'input standard (descrittore di file 0) se n is
non specificato.

Il formato generale per il reindirizzamento dell'input è:

[n]<parola

Reindirizzamento Uscita
Il reindirizzamento dell'output fa sì che il file il cui nome risulta dall'espansione di parola essere
aperto per la scrittura sul descrittore di file n, o l'output standard (descrittore di file 1) se n
non è specificato. Se il file non esiste viene creato; se esiste viene
troncato a dimensione zero.

Il formato generale per il reindirizzamento dell'output è:

[n]>parola

Se l'operatore di reindirizzamento è > noclobber opzione per il set incorporato è stato
abilitato, il reindirizzamento fallirà se il file il cui nome risulta dall'espansione di
parola esiste ed è un file regolare. Se l'operatore di reindirizzamento è >|, o il reindirizzamento
l'operatore è > e la noclobber opzione per il set il comando builtin non è abilitato, il
il reindirizzamento viene tentato anche se il file denominato da parola esiste.

In allegato Reindirizzamento Uscita
Il reindirizzamento dell'output in questo modo fa sì che il file il cui nome risulta da
espansione di parola da aprire per l'aggiunta al descrittore di file n, o l'output standard
(descrittore di file 1) se n non è specificato. Se il file non esiste, viene creato.

Il formato generale per aggiungere l'output è:

[n]>>parola

Reindirizzamento Standard Uscita e Standard Errore
Questa struttura consente sia l'output standard (descrittore di file 1) sia l'errore standard
output (descrittore di file 2) da reindirizzare al file il cui nome è l'espansione di
parola.

Esistono due formati per reindirizzare l'output standard e l'errore standard:

&>parola
e
>&parola

Delle due forme, la prima è preferita. Questa è semanticamente equivalente a

>parola 2>&1

Quando si utilizza la seconda forma, parola non può espandersi a un numero o -Se lo fa, altro
si applicano gli operatori di reindirizzamento (vedere duplicazione Compila il descrittori sotto) per compatibilità
motivi.

In allegato Standard Uscita e Standard Errore
Questa struttura consente sia l'output standard (descrittore di file 1) sia l'errore standard
output (descrittore di file 2) da aggiungere al file il cui nome è l'espansione di parola.

Il formato per aggiungere output standard ed errore standard è:

&>>parola

Questo è semanticamente equivalente a

>>parola 2>&1

(Vedi duplicazione Compila il descrittori sotto).

Qui Documenti
Questo tipo di reindirizzamento istruisce la shell a leggere l'input dalla sorgente corrente finché un
riga contenente solo delimitatore (senza spazi vuoti finali) è visibile. Tutte le righe sono scritte
fino a quel momento vengono poi utilizzati come input standard per un comando.

Il formato dei documenti qui è:

<<[-]parola
qui-documento
delimitatore

Nessuna espansione di parametri e variabili, sostituzione di comandi, espansione aritmetica o
l'espansione del percorso viene eseguita su parolaSe qualche carattere in parola sono citati, il
delimitatore è il risultato della rimozione della citazione su parolae le linee nel documento qui sono
non espanso. Se parola non è quotato, tutte le righe del documento qui sono soggette a
espansione dei parametri, sostituzione dei comandi ed espansione aritmetica, il carattere
sequenza \ viene ignorato e \ deve essere utilizzato per citare i caratteri \, $e `.

Se l'operatore di reindirizzamento è << -, quindi tutti i caratteri di tabulazione iniziali vengono rimossi da
linee di input e la riga contenente delimitatoreCiò consente i documenti here all'interno della shell
gli script devono essere rientrati in modo naturale.

Qui String
Una variante dei documenti here, il formato è:

<<parola

. parola subisce l'espansione della parentesi graffa, l'espansione della tilde, l'espansione dei parametri e delle variabili,
sostituzione di comando, espansione aritmetica e rimozione delle virgolette. Espansione del percorso e
la suddivisione delle parole non viene eseguita. Il risultato viene fornito come una singola stringa al
comando sul suo input standard.

duplicazione Compila il descrittori
L'operatore di reindirizzamento

[n]<&parola

viene utilizzato per duplicare i descrittori dei file di input. Se parola si espande a una o più cifre, il
descrittore di file indicato da n è fatto per essere una copia di quel descrittore di file. Se le cifre
in parola non specificare un descrittore di file aperto per l'input, si verifica un errore di reindirizzamento. Se
parola valuta a -, descrittore di file n è chiuso. Se n non è specificato, lo standard
viene utilizzato l'input (descrittore di file 0).

L'operatore

[n]>&parola

viene utilizzato in modo simile per duplicare i descrittori dei file di output. Se n non è specificato, il
viene utilizzato lo standard output (descrittore di file 1). Se le cifre in parola non specificare un file
descrittore aperto per l'output, si verifica un errore di reindirizzamento. Se parola valuta a -, file
descrittore n è chiuso. Come caso speciale, se n è omesso, e parola non si espande a
una o più cifre o -, l'output standard e l'errore standard vengono reindirizzati come
descritto in precedenza.

In movimento Compila il descrittori
L'operatore di reindirizzamento

[n]<&cifra-

sposta il descrittore del file cifra al descrittore di file n, o l'input standard (file
descrittore 0) se n non è specificato. cifra viene chiuso dopo essere stato duplicato in n.

Allo stesso modo, l'operatore di reindirizzamento

[n]>&cifra-

sposta il descrittore del file cifra al descrittore di file n, o l'output standard (file
descrittore 1) se n non è specificato.

Apertura Compila il descrittori da Lettura e scrittura
L'operatore di reindirizzamento

[n]<>parola

causa il file il cui nome è l'espansione di parola da aprire sia per la lettura che
scrittura sul descrittore di file n, o sul descrittore di file 0 se n non è specificato. Se il file
non esiste, è creato.

ALIAS


Alias consentire che una stringa venga sostituita da una parola quando viene utilizzata come prima parola di un
comando semplice. La shell mantiene un elenco di alias che possono essere impostati e deselezionati con
alias e Unalias comandi incorporati (vedi SHELL COSTRUZIONE COMANDI sotto). La prima parola di
Ogni comando semplice, se non è racchiuso tra virgolette, viene controllato per vedere se ha un alias. In tal caso, quella parola
viene sostituito dal testo dell'alias. I caratteri /, $, `e = e qualsiasi guscio
metacaratteri o i caratteri di citazione elencati sopra potrebbero non apparire in un nome alias. Il
il testo sostitutivo può contenere qualsiasi input shell valido, inclusi i metacaratteri shell.
la prima parola del testo sostitutivo viene testata per gli alias, ma una parola che è identica a
un alias che viene espanso non viene espanso una seconda volta. Ciò significa che è possibile creare un alias ls
a ls -F, per esempio, e bash non tenta di espandere ricorsivamente il testo sostitutivo.
Se l'ultimo carattere del valore alias è un vuoto, quindi la parola di comando successiva
viene inoltre controllato l'alias per verificarne l'espansione.

Gli alias vengono creati ed elencati con alias comando, e rimosso con il Unalias
comando.

Non esiste alcun meccanismo per utilizzare argomenti nel testo sostitutivo. Se gli argomenti sono
necessario, dovrebbe essere utilizzata una funzione shell (vedere FUNZIONI sotto).

Gli alias non vengono espansi quando la shell non è interattiva, a meno che espandi_alias
l'opzione shell è impostata utilizzando negozio (vedi la descrizione di negozio per SHELL COSTRUZIONE COMANDI
sotto).

Le regole riguardanti la definizione e l'uso degli alias sono un po' confuse. Bash
legge sempre almeno una riga completa di input prima di eseguire uno qualsiasi dei comandi su
quella riga. Gli alias vengono espansi quando un comando viene letto, non quando viene eseguito.
Pertanto, una definizione di alias che appare sulla stessa riga di un altro comando non ha effetto
effetto fino alla lettura della riga di input successiva. I comandi che seguono la definizione dell'alias
su quella linea non sono interessati dal nuovo alias. Questo comportamento è un problema anche quando
le funzioni vengono eseguite. Gli alias vengono espansi quando viene letta una definizione di funzione, non quando
la funzione viene eseguita, perché una definizione di funzione è essa stessa un comando composto. Come
di conseguenza, gli alias definiti in una funzione non sono disponibili fino a dopo tale funzione
viene eseguito. Per sicurezza, inserisci sempre le definizioni degli alias su una riga separata e non usare
alias nei comandi composti.

Per quasi tutti gli scopi, gli alias vengono sostituiti dalle funzioni shell.

FUNZIONI


Una funzione shell, definita come descritto sopra sotto SHELL GRAMMATICA, memorizza una serie di
comandi per l'esecuzione successiva. Quando il nome di una funzione shell viene utilizzato come semplice
nome del comando, viene eseguito l'elenco dei comandi associati a quel nome di funzione.
Le funzioni vengono eseguite nel contesto della shell corrente; non viene creato alcun nuovo processo per
interpretarli (in contrasto con l'esecuzione di uno script shell). Quando una funzione è
eseguito, gli argomenti della funzione diventano i parametri posizionali durante la sua
esecuzione. Il parametro speciale # viene aggiornato per riflettere la modifica. Parametro speciale 0
è invariato. Il primo elemento del NOMEFUNZIONE la variabile è impostata sul nome del
funzione mentre la funzione è in esecuzione.

Tutti gli altri aspetti dell'ambiente di esecuzione della shell sono identici tra una funzione e
il suo chiamante con queste eccezioni: il DEBUG e RITORNO trappole (vedi la descrizione del
trappola incorporato sotto SHELL COSTRUZIONE COMANDI di seguito) non vengono ereditati a meno che la funzione non abbia
è stato dato il tracciare attributo (vedere la descrizione del dichiarare incorporato sotto) o il
-o funtrace l'opzione shell è stata abilitata con set builtin (nel qual caso tutti
le funzioni ereditano il DEBUG e RITORNO trappole), e il ERR la trappola non viene ereditata a meno che
, il -o traccia di errore l'opzione shell è stata abilitata.

Le variabili locali alla funzione possono essere dichiarate con locale comando incorporato.
Di solito, le variabili e i loro valori vengono condivisi tra la funzione e chi la chiama.

. FUNCNEST variabile, se impostata su un valore numerico maggiore di 0, definisce un massimo
livello di annidamento delle funzioni. Le invocazioni di funzioni che superano il limite causano l'intero
comando per interrompere.

Se il comando incorporato ritorno viene eseguito in una funzione, la funzione si completa e
l'esecuzione riprende con il comando successivo alla chiamata della funzione. Qualsiasi comando associato
con la RITORNO trap viene eseguito prima che l'esecuzione riprenda. Quando una funzione viene completata,
valori dei parametri posizionali e del parametro speciale # vengono ripristinati i valori
che avevano prima dell'esecuzione della funzione.

I nomi e le definizioni delle funzioni possono essere elencati con -f opzione per il dichiarare or comporre
comandi incorporati. Il -F opzione a dichiarare or comporre elencherà solo i nomi delle funzioni
(e facoltativamente il file sorgente e il numero di riga, se il debug esteso l'opzione shell è abilitata).
Le funzioni possono essere esportate in modo che le subshell le abbiano automaticamente definite con -f
opzione per il export builtin. Una definizione di funzione può essere eliminata utilizzando -f opzione a
, il non settato builtin. Nota che le funzioni shell e le variabili con lo stesso nome possono risultare
in più voci con nomi identici nell'ambiente passato ai figli della shell.
Bisogna fare attenzione nei casi in cui ciò possa causare problemi.

Le funzioni possono essere ricorsive. FUNCNEST variabile può essere utilizzata per limitare la profondità del
stack delle chiamate di funzione e limitare il numero di invocazioni di funzione. Per impostazione predefinita, nessun limite
viene imposto sul numero di chiamate ricorsive.

ARITMETICA VALUTAZIONE


La shell consente di valutare espressioni aritmetiche, in determinate circostanze (vedere
, il lasciare e dichiarare comandi incorporati e Aritmetica Espansione). La valutazione viene effettuata in
interi a larghezza fissa senza controllo di overflow, sebbene la divisione per 0 venga bloccata e
contrassegnato come errore. Gli operatori e la loro precedenza, associatività e valori sono
lo stesso del linguaggio C. Il seguente elenco di operatori è raggruppato in livelli di
operatori di precedenza uguale. I livelli sono elencati in ordine di precedenza decrescente.

id++ id--
post-incremento e post-decremento variabili
++id --id
pre-incremento e pre-decremento variabile
- + meno e più unari
! ~ negazione logica e bit a bit
** elevamento a potenza
* / % moltiplicazione, divisione, resto
+ - addizione, sottrazione
<< >> spostamenti bit a bit a sinistra e a destra
<= >= < >
confronto
== != uguaglianza e disuguaglianza
& AND bit a bit
^ OR esclusivo bit a bit
| bit a bit OR
&& logico E
|| logico OR
espr?espr:espr
operatore condizionale
= *= /= %= += -= << = >> = &= ^= |=
assegnazione
espr1 , espr2
virgola

Le variabili shell sono consentite come operandi; l'espansione dei parametri viene eseguita prima dell'
l'espressione viene valutata. All'interno di un'espressione, le variabili shell possono anche essere referenziate da
nome senza utilizzare la sintassi di espansione dei parametri. Una variabile shell che è null o non impostata
viene valutato a 0 quando referenziato per nome senza utilizzare la sintassi di espansione dei parametri. Il
il valore di una variabile viene valutato come un'espressione aritmetica quando viene referenziato, oppure
quando una variabile a cui è stata assegnata la numero intero attributo utilizzando dichiarare -i è assegnato a
valore. Un valore nullo viene valutato come 0. Una variabile shell non deve avere il suo numero intero attributo
attivato per essere utilizzato in un'espressione.

Le costanti con uno 0 iniziale vengono interpretate come numeri ottali. Uno 0x o 0X iniziale indica
esadecimale. Altrimenti, i numeri assumono la forma [base#]n, dove l'facoltativo base è un
numero decimale compreso tra 2 e 64 che rappresenta la base aritmetica, e n è un numero in
quella base. Se base# viene omesso, allora viene utilizzata la base 10. Quando si specifica n, le cifre
maggiore di 9 sono rappresentati dalle lettere minuscole, dalle lettere maiuscole, @ e _,
in quest'ordine. Se base è minore o uguale a 36, ​​le lettere minuscole e maiuscole possono
essere usati in modo intercambiabile per rappresentare numeri compresi tra 10 e 35.

Gli operatori vengono valutati in ordine di precedenza. Le sottoespressioni tra parentesi sono
valutato per primo e può ignorare le regole di precedenza di cui sopra.

CONDIZIONALE ESPRESSIONI


Le espressioni condizionali sono utilizzate da [[ comando composto e il test e [ incorporato
comandi per testare gli attributi dei file ed eseguire confronti di stringhe e aritmetici.
Le espressioni sono formate dai seguenti primari unari o binari. Se presenti filetto argomento
a una delle primarie è della forma /dev/fd/n, quindi descrittore di file n è selezionato. Se
, il filetto l'argomento a una delle primarie è uno dei /dev/stdin, /dev/stdout, o
/dev/stderr, viene selezionato rispettivamente il descrittore di file 0, 1 o 2.

Se non diversamente specificato, i primari che operano sui file seguono collegamenti simbolici e
operare sulla destinazione del collegamento, piuttosto che sul collegamento stesso.

Se usato con [[, l' < e > gli operatori ordinano lessicograficamente utilizzando le impostazioni locali correnti.
. test il comando ordina utilizzando l'ordinamento ASCII.

-a filetto
vero se filetto esiste.
-b filetto
vero se filetto esiste ed è un file speciale a blocchi.
-c filetto
vero se filetto esiste ed è un file di caratteri speciali.
-d filetto
vero se filetto esiste ed è una directory.
-e filetto
vero se filetto esiste.
-f filetto
vero se filetto esiste ed è un file normale.
-g filetto
vero se filetto esiste ed è set-group-id.
-h filetto
vero se filetto esiste ed è un collegamento simbolico.
-k filetto
vero se filetto esiste e il suo bit ``sticky'' è impostato.
-p filetto
vero se filetto esiste ed è una named pipe (FIFO).
-r filetto
vero se filetto esiste ed è leggibile.
-s filetto
vero se filetto esiste e ha una dimensione maggiore di zero.
-t fd Vero se il descrittore del file fd è aperto e fa riferimento a un terminale.
-u filetto
vero se filetto esiste e il suo bit set-user-id è impostato.
-w filetto
vero se filetto esiste ed è scrivibile.
-x filetto
vero se filetto esiste ed è eseguibile.
-G filetto
vero se filetto esiste ed è di proprietà dell'ID gruppo effettivo.
-L filetto
vero se filetto esiste ed è un collegamento simbolico.
-N filetto
vero se filetto esiste ed è stato modificato dall'ultima lettura.
-O filetto
vero se filetto esiste ed è di proprietà dell'ID utente effettivo.
-S filetto
vero se filetto esiste ed è un socket.
file1 -ef file2
vero se file1 e file2 si riferiscono allo stesso dispositivo e agli stessi numeri di inode.
file1 -nt file2
vero se file1 è più recente (secondo la data di modifica) di file2, o se file1
esiste e file2 non.
file1 -ot file2
vero se file1 è più vecchio di file2, o se file2 esiste e file1 non.
-o nomeopt
Vero se l'opzione shell nomeopt è abilitato. Vedi l'elenco delle opzioni sotto
descrizione del -o opzione per il set incorporato qui sotto.
-v nomevar
Vero se la variabile shell nomevar è impostato (è stato assegnato un valore).
-R nomevar
Vero se la variabile shell nomevar è impostato ed è un riferimento al nome.
-z stringa
Vero se la lunghezza di stringa è zero.
stringa
-n stringa
Vero se la lunghezza di stringa è diverso da zero.

string1 == string2
string1 = string2
Vero se le stringhe sono uguali. = dovrebbe essere usato con il test comando per POSIX
conformità. Quando utilizzato con il [[ comando, questo esegue il pattern matching come
descritto sopra (Compound Comandi).

string1 != string2
Vero se le stringhe non sono uguali.

string1 < string2
vero se string1 ordina prima string2 lessicograficamente.

string1 > string2
vero se string1 ordina dopo string2 lessicograficamente.

arg1 OP arg2
OP è uno dei -eq, -Ne, -lt, -Le, -gt, o -dareQuesti operatori binari aritmetici
restituisce vero se arg1 è uguale a, non uguale a, minore di, minore o uguale a,
maggiore di, o maggiore o uguale a arg2, Rispettivamente. Argo1 e arg2 può essere
numeri interi positivi o negativi.

SIMPLE COMANDO ESPANSIONE


Quando viene eseguito un comando semplice, la shell esegue le seguenti espansioni,
assegnazioni e reindirizzamenti, da sinistra a destra.

1. Le parole che il parser ha contrassegnato come assegnazioni di variabili (quelle che precedono il
nome del comando) e i reindirizzamenti vengono salvati per un'elaborazione successiva.

2. Le parole che non sono assegnazioni o reindirizzamenti variabili vengono espanse. Se presenti
le parole rimangono dopo l'espansione, la prima parola è considerata il nome del comando
e le parole rimanenti sono gli argomenti.

3. I reindirizzamenti vengono eseguiti come descritto sopra in REINDIRIZZAZIONE.

4. Il testo dopo il = in ogni assegnazione di variabile subisce l'espansione della tilde,
espansione dei parametri, sostituzione dei comandi, espansione aritmetica e rimozione delle virgolette
prima di essere assegnato alla variabile.

Se non viene visualizzato alcun nome di comando, le assegnazioni delle variabili influiscono sull'ambiente shell corrente.
In caso contrario, le variabili vengono aggiunte all'ambiente del comando eseguito e non
influenzare l'ambiente shell corrente. Se una qualsiasi delle assegnazioni tenta di assegnare un
valore in una variabile di sola lettura, si verifica un errore e il comando termina con un valore diverso da zero
stato.

Se non viene restituito alcun nome di comando, vengono eseguiti dei reindirizzamenti, ma non influiscono sul comando corrente.
ambiente shell. Un errore di reindirizzamento fa sì che il comando esca con uno stato diverso da zero.

Se dopo l'espansione rimane un nome di comando, l'esecuzione procede come descritto di seguito.
In caso contrario, il comando termina. Se una delle espansioni conteneva una sostituzione di comando,
lo stato di uscita del comando è lo stato di uscita dell'ultima sostituzione del comando
eseguito. Se non ci sono state sostituzioni di comando, il comando esce con uno stato di
zero.

COMANDO ESECUZIONE


Dopo che un comando è stato suddiviso in parole, se risulta in un comando semplice e un
elenco facoltativo di argomenti, vengono eseguite le seguenti azioni.

Se il nome del comando non contiene barre, la shell tenta di individuarlo. Se esiste
una funzione shell con quel nome, quella funzione viene richiamata come descritto sopra in FUNZIONI.
Se il nome non corrisponde a una funzione, la shell lo cerca nell'elenco delle shell
builtin. Se viene trovata una corrispondenza, viene richiamato quel builtin.

Se il nome non è né una funzione shell né un builtin e non contiene barre, bash
cerca ogni elemento del PERCORSO per una directory contenente un file eseguibile da quello
nome. Bash utilizza una tabella hash per ricordare i percorsi completi dei file eseguibili (vedere hash
per SHELL COSTRUZIONE COMANDI di seguito). Una ricerca completa delle directory in PERCORSO is
eseguito solo se il comando non viene trovato nella tabella hash. Se la ricerca è
senza successo, la shell cerca una funzione shell definita denominata
handle_comando_non_trovatoSe tale funzione esiste, viene richiamata con l'originale
comando e gli argomenti del comando originale come suoi argomenti e l'uscita della funzione
status diventa lo stato di uscita della shell. Se tale funzione non è definita, la shell
stampa un messaggio di errore e restituisce uno stato di uscita pari a 127.

Se la ricerca ha esito positivo o se il nome del comando contiene una o più barre, il
La shell esegue il programma specificato in un ambiente di esecuzione separato. L'argomento 0 è impostato
al nome dato e gli argomenti rimanenti del comando vengono impostati sugli argomenti
dato, se presente.

Se questa esecuzione fallisce perché il file non è in formato eseguibile e il file non è
una directory, si presume che sia una conchiglia copione, un file contenente comandi shell. A
viene generata una subshell per eseguirlo. Questa subshell si reinizializza, in modo che l'effetto
è come se fosse stata invocata una nuova shell per gestire lo script, con l'eccezione che
posizioni dei comandi ricordati dal genitore (vedere hash sotto sotto SHELL COSTRUZIONE
COMANDI) vengono trattenuti dal bambino.

Se il programma è un file che inizia con #!, il resto della prima riga specifica un
interprete per il programma. La shell esegue l'interprete specificato sul sistema operativo
sistemi che non gestiscono autonomamente questo formato eseguibile. Gli argomenti per l'
interprete è costituito da un singolo argomento facoltativo che segue il nome dell'interprete su
prima riga del programma, seguita dal nome del programma, seguito dal comando
eventuali argomenti.

COMANDO ESECUZIONE AMBIENTE


Il guscio ha un esecuzione Industria XNUMX, che consiste in quanto segue:

· file aperti ereditati dalla shell all'invocazione, come modificati dai reindirizzamenti
in dotazione al exec incorporato

· la directory di lavoro corrente come impostata da cd, pushd, o popd, o ereditato dal
shell all'invocazione

· la maschera della modalità di creazione del file come impostata da umask o ereditato dal genitore della shell

· trappole di corrente impostate da trappola

· parametri shell impostati tramite assegnazione di variabili o con set o ereditato da
il genitore della shell nell'ambiente

· funzioni shell definite durante l'esecuzione o ereditate dalla shell madre in
dell'ambiente

· opzioni abilitate all'invocazione (per impostazione predefinita o con argomenti della riga di comando) o
by set

· opzioni abilitate da negozio

· alias shell definiti con alias

· vari ID di processo, compresi quelli dei processi in background, il valore di $$
valore di PPID

Quando si deve eseguire un comando semplice diverso da una funzione incorporata o shell, è
richiamato in un ambiente di esecuzione separato che consiste in quanto segue. A meno che
altrimenti i valori vengono ereditati dalla shell.

· i file aperti della shell, più eventuali modifiche e aggiunte specificate da
reindirizzamenti al comando

· la directory di lavoro corrente

· la maschera della modalità di creazione del file

· variabili e funzioni shell contrassegnate per l'esportazione, insieme alle variabili esportate per
il comando, passato nell'ambiente

· le trappole catturate dalla shell vengono reimpostate sui valori ereditati dalla shell
genitore e le trappole ignorate dalla shell vengono ignorate

Un comando richiamato in questo ambiente separato non può influenzare l'esecuzione della shell
ambiente.

La sostituzione dei comandi, i comandi raggruppati tra parentesi e i comandi asincroni sono
richiamato in un ambiente subshell che è un duplicato dell'ambiente shell, eccetto
che le trappole catturate dalla shell vengano reimpostate sui valori che la shell ha ereditato dalla sua
genitore all'invocazione. I comandi incorporati che vengono invocati come parte di una pipeline sono anche
eseguito in un ambiente subshell. Le modifiche apportate all'ambiente subshell non possono
influenzare l'ambiente di esecuzione della shell.

Le subshell generate per eseguire sostituzioni di comando ereditano il valore di -e opzione da
la shell genitore. Quando non è in posix modalità, bash cancella il -e opzione in tali subshell.

Se un comando è seguito da un & e il controllo del lavoro non è attivo, l'input standard predefinito
perché il comando è il file vuoto / Dev / nullIn caso contrario, il comando richiamato eredita il
descrittori di file della shell chiamante modificati dai reindirizzamenti.

AMBIENTE


Quando un programma viene richiamato, gli viene fornito un array di stringhe chiamato Industria XNUMX. Questo è
una lista di Nome-APPREZZIAMO coppie, della forma Nome=APPREZZIAMO.

La shell fornisce diversi modi per manipolare l'ambiente. All'invocazione, la shell
esegue la scansione del proprio ambiente e crea automaticamente un parametro per ogni nome trovato
contrassegnandolo per export ai processi figlio. I comandi eseguiti ereditano l'ambiente. Il
export e dichiarare -x i comandi consentono di aggiungere ed eliminare parametri e funzioni
dall'ambiente. Se il valore di un parametro nell'ambiente viene modificato, il nuovo
il valore diventa parte dell'ambiente, sostituendo il vecchio. L'ambiente ereditato da
ogni comando eseguito è costituito dall'ambiente iniziale della shell, i cui valori possono essere
modificato nella shell, meno eventuali coppie rimosse dal non settato comando, più eventuali aggiunte tramite
, il export e dichiarare -x comandi.

L'ambiente per qualsiasi semplice command o la funzione può essere aumentata temporaneamente da
anteponendolo con assegnazioni di parametri, come descritto sopra in PARAMETRI. Queste
le istruzioni di assegnazione influenzano solo l'ambiente visualizzato da quel comando.

Se l' -k l'opzione è impostata (vedere set comando incorporato di seguito), quindi contro tutti i parametro
le assegnazioni vengono inserite nell'ambiente per un comando, non solo quelle che precedono il
nome del comando.

Quando bash richiama un comando esterno, la variabile _ è impostato sul nome completo del file
comando e passato a quel comando nel suo ambiente.

EXIT STATUS


Lo stato di uscita di un comando eseguito è il valore restituito dal aspetta chiamata di sistema o
funzione equivalente. Gli stati di uscita sono compresi tra 0 e 255, tuttavia, come spiegato di seguito,
la shell può utilizzare valori superiori a 125 in modo speciale. Stati di uscita dai comandi predefiniti della shell e
Anche i comandi composti sono limitati a questo intervallo. In determinate circostanze, la shell
utilizzerà valori speciali per indicare modalità di errore specifiche.

Ai fini della shell, un comando che esce con uno stato di uscita zero è riuscito. Un
lo stato di uscita pari a zero indica successo. Uno stato di uscita diverso da zero indica fallimento. Quando un
il comando termina con un segnale fatale N, bash utilizza il valore di 128+N come stato di uscita.

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

Se un comando fallisce a causa di un errore durante l'espansione o il reindirizzamento, lo stato di uscita è
maggiore di zero.

I comandi incorporati della shell restituiscono lo stato 0 (vero) se ha esito positivo e diverso da zero (falso) Se
si verifica un errore durante l'esecuzione. Tutti i built-in restituiscono uno stato di uscita di 2 per indicare
uso scorretto.

Bash restituisce lo stato di uscita dell'ultimo comando eseguito, a meno che non si verifichi un errore di sintassi
si verifica, nel qual caso esce con un valore diverso da zero. Vedi anche exit comando integrato
qua sotto.

SEGNALI


Quando bash è interattivo, in assenza di trappole, ignora TERMINE (affinché kill 0
non uccide una shell interattiva), e SIGINT viene catturato e maneggiato (in modo che il aspettare
builtin è interrompibile). In tutti i casi, bash ignora TANTOSe il controllo del lavoro è in
effetto, bash ignora SIGTTINO, SIGTTOUe SIGTSTP.

Comandi non incorporati eseguiti da bash avere gestori di segnale impostati sui valori ereditati da
shell dal suo genitore. Quando il controllo del lavoro non è attivo, i comandi asincroni ignorano
SIGINT e TANTO oltre a questi gestori ereditati. I comandi vengono eseguiti come risultato di
la sostituzione dei comandi ignora i segnali di controllo del lavoro generati dalla tastiera SIGTTINO, SIGTTOU,
e SIGTSTP.

La shell esce per impostazione predefinita alla ricezione di un SIGILLO. Prima di uscire, una shell interattiva
rinvia il SIGILLO a tutti i lavori, in esecuzione o interrotti. I lavori interrotti vengono inviati PROSSIMO CONTO a
assicurarsi che ricevano il SIGILLOPer impedire alla shell di inviare il segnale a un
lavoro particolare, dovrebbe essere rimosso dalla tabella dei lavori con il rinnegare incorporato (vedi
SHELL COSTRUZIONE COMANDI sotto) o contrassegnato per non ricevere SIGILLO utilizzando rinnegare -h.

Se l' huponexit l'opzione shell è stata impostata con negozio, bash invia a SIGILLO a tutti i lavori
quando si chiude una shell di login interattiva.

If bash è in attesa del completamento di un comando e riceve un segnale per il quale è stata attivata una trappola
è stato impostato, la trappola non verrà eseguita fino al completamento del comando. Quando bash Sta aspettando
per un comando asincrono tramite il aspettare incorporato, la ricezione di un segnale per il quale un
la trappola è stata impostata causerà il aspettare incorporato per tornare immediatamente con uno stato di uscita
maggiore di 128, subito dopo viene eseguita la trappola.

JOB CONTROLLO


Lavoro di controllo si riferisce alla capacità di fermare selettivamente (sospendere) l'esecuzione dei processi
e continua (curriculum vitae) la loro esecuzione in un secondo momento. Un utente in genere utilizza questo
funzionalità tramite un'interfaccia interattiva fornita congiuntamente dal kernel del sistema operativo
conducente del terminale e bash.

La shell associa a lavoro con ogni pipeline. Mantiene una tabella delle pipeline attualmente in esecuzione
lavori, che possono essere elencati con il posti di lavoro comando. quando bash avvia un lavoro in modo asincrono
(nel sfondo), stampa una riga simile a:

[1] 25647

indicando che questo lavoro è il lavoro numero 1 e che l'ID del processo dell'ultimo processo in
la pipeline associata a questo lavoro è 25647. Tutti i processi in una singola pipeline
sono membri dello stesso lavoro. Bash utilizza l' lavoro astrazione come base per il controllo del lavoro.

Per facilitare l'implementazione dell'interfaccia utente per il controllo del lavoro, il sistema operativo
il sistema mantiene la nozione di un corrente terminale processi gruppo IDI membri di questo
gruppo di processi (processi il cui ID del gruppo di processi è uguale al processo terminale corrente
ID di gruppo) ricevono segnali generati dalla tastiera come SIGINTSi dice che questi processi
essere nel primo piano. sfondo i processi sono quelli il cui ID del gruppo di processi differisce da
del terminale; tali processi sono immuni ai segnali generati dalla tastiera. Solo in primo piano
i processi possono leggere da o, se l'utente lo specifica con stty tostop, scrivere su
il terminale. Processi in background che tentano di leggere da (scrivere su quando stty tostop
è in vigore) al terminale viene inviato un SIGTTINO (SIGTTOU) segnale dal terminale del kernel
driver che, se non viene scoperto, sospende il processo.

Se il sistema operativo su cui bash è in esecuzione supporta il controllo del lavoro, bash contiene
strutture per utilizzarlo. Digitando il sospendere carattere (tipicamente ^Z, Control-Z) mentre un
il processo è in esecuzione provoca l'arresto del processo e restituisce il controllo a bash. Digitazione
, il ritardato sospendere carattere (tipicamente ^Y, Control-Y) provoca l'arresto del processo
quando tenta di leggere l'input dal terminale e il controllo deve essere restituito a bash.
l'utente può quindi manipolare lo stato di questo lavoro, utilizzando il bg comando per continuare nel
sfondo, il fg comando per continuare in primo piano, oppure kill comando di uccidere
esso. UN ^Z ha effetto immediato e ha l'ulteriore effetto collaterale di causare ritardi
output e completamento automatico da scartare.

Ci sono diversi modi per fare riferimento a un lavoro nella shell. Il carattere % introduce un
specifiche del lavoro (specifiche di lavoro). Numero di lavoro n può essere indicato come %nUn lavoro può anche essere
indicato utilizzando un prefisso del nome utilizzato per avviarlo, o utilizzando una sottostringa che appare
nella sua riga di comando. Ad esempio, %ce si riferisce a un fermo ce lavoro. Se un prefisso corrisponde
più di un lavoro, bash segnala un errore. Utilizzo %?ce, d'altra parte, si riferisce a qualsiasi
lavoro contenente la stringa ce nella sua riga di comando. Se la sottostringa corrisponde a più di una
lavoro, bash segnala un errore. I simboli %% e %+ fare riferimento alla nozione del guscio di
corrente lavoro, che è l'ultimo lavoro interrotto mentre era in primo piano o avviato in
lo sfondo. Il precedente lavoro può essere referenziato utilizzando %-Se c'è un solo singolo
lavoro, %+ e %- possono essere entrambi utilizzati per riferirsi a quel lavoro. Nell'output relativo ai lavori (ad esempio,
l'uscita del posti di lavoro comando), il lavoro corrente è sempre contrassegnato con un +
precedente lavoro con un -Una singola % (senza alcuna specifica di lavoro associata) si riferisce anche a
il lavoro attuale.

Per portare in primo piano un lavoro, è sufficiente assegnargli un nome: %1 è sinonimo di ``fg
%1'', portando il lavoro 1 dallo sfondo al primo piano. Allo stesso modo, ``%1 &'' riprende
lavoro 1 in background, equivalente a ``bg %1''.

La shell apprende immediatamente ogni volta che un processo cambia stato. Normalmente, bash aspetta finché non
sta per stampare un prompt prima di segnalare le modifiche nello stato di un lavoro in modo da non
interrompere qualsiasi altra uscita. Se il -b opzione per il set il comando builtin è abilitato, bash
segnala immediatamente tali cambiamenti. Qualsiasi trappola su SIGCHLD viene eseguito per ogni bambino che
esce.

Se si tenta di uscire bash viene effettuato mentre i lavori sono interrotti (o, se il controlla i lavori conchiglia
l'opzione è stata abilitata utilizzando l' negozio builtin, running), la shell stampa un avviso
messaggio e, se il controlla i lavori l'opzione è abilitata, elenca i lavori e i loro stati. L'
posti di lavoro comando può quindi essere utilizzato per ispezionare il loro stato. Se è necessario un secondo tentativo di uscita
effettuato senza un comando intermedio, la shell non stampa un altro avviso e qualsiasi
i lavori interrotti vengono terminati.

SUGGERIMENTO


Quando si esegue in modo interattivo, bash visualizza il prompt principale PS1 quando è pronto per
leggere un comando e il prompt secondario PS2 quando sono necessari più input per completare un
comando. Bash consente di personalizzare queste stringhe di richiesta inserendo un numero di
caratteri speciali preceduti da barra rovesciata che vengono decodificati come segue:
\a un carattere campanello ASCII (07)
\d la data nel formato "Giorno della settimana Mese Data" (ad esempio, "Martedì 26 maggio")
\D{formato}
, il formato è passato a strftime(3) e il risultato viene inserito nel
stringa di richiesta; una stringa vuota formato si traduce in un tempo specifico locale
rappresentazione. Le parentesi graffe sono obbligatorie
\e un carattere di escape ASCII (033)
\h il nome host fino al primo `.'
\H il nome host
\j il numero di lavori attualmente gestiti dalla shell
\l il nome base del nome del dispositivo terminale della shell
\n nuova linea
\r ritorno a capo
\s il nome della shell, il nome base di $0 (la parte successiva alla finale
barra)
\t l'ora corrente nel formato 24 ore HH:MM:SS
\T l'ora corrente nel formato 12 ore HH:MM:SS
\@ l'ora corrente nel formato am/pm a 12 ore
\A l'ora corrente nel formato 24 ore HH:MM
\u il nome utente dell'utente corrente
\v la versione di bash (ad es. 2.00)
\V il rilascio di bash, versione + livello di patch (ad esempio, 2.00.0)
\w la directory di lavoro corrente, con $ HOME abbreviato con una tilde (usa il
valore del PROMPT_DIRTRIM variabile)
\W il nome base della directory di lavoro corrente, con $ HOME abbreviato con a
tilde
\! il numero cronologico di questo comando
\# il numero di comando di questo comando
\$ se l'UID effettivo è 0, a #, altrimenti a $
\nnn il carattere corrispondente al numero ottale nnn
\\ una barra rovesciata
\[ iniziare una sequenza di caratteri non stampabili, che potrebbe essere utilizzata per incorporare a
sequenza di controllo del terminale nel prompt
\] termina una sequenza di caratteri non stampabili

Il numero di comando e il numero di cronologia sono solitamente diversi: il numero di cronologia di un
comando è la sua posizione nell'elenco cronologico, che può includere comandi ripristinati dal
file storico (vedi STORIA sotto), mentre il numero del comando è la posizione nella sequenza
dei comandi eseguiti durante la sessione shell corrente. Dopo che la stringa è stata decodificata, è
espanso tramite espansione dei parametri, sostituzione dei comandi, espansione aritmetica e virgolette
rimozione, subordinatamente al valore del promptvars opzione shell (vedere la descrizione del
negozio comando sotto SHELL COSTRUZIONE COMANDI sotto).

LINEA DI LETTURA


Questa è la libreria che gestisce l'input di lettura quando si utilizza una shell interattiva, a meno che
--nessuna modifica l'opzione viene fornita all'invocazione della shell. La modifica della riga viene utilizzata anche quando si utilizza
-e opzione per il read builtin. Per impostazione predefinita, i comandi di modifica della riga sono simili a quelli
di Emacs. È disponibile anche un'interfaccia di modifica delle righe in stile vi. La modifica delle righe può essere
abilitato in qualsiasi momento utilizzando il -o emacs or -o vi opzioni per il set incorporato (vedi SHELL
COSTRUZIONE COMANDI di seguito). Per disattivare la modifica della riga dopo l'esecuzione della shell, utilizzare +o
emacs or +o vi opzioni per il set incorporato.

Readline notazione
In questa sezione, la notazione in stile Emacs viene utilizzata per indicare le sequenze di tasti. I tasti di controllo sono
indicato con C-chiave, ad esempio, Cn significa Control-N. Allo stesso modo, arrivo le chiavi sono indicate con M-chiave,
quindi Mx significa Meta-X. (Sulle tastiere senza arrivo chiave, M-x significa ESC x, cioè premere il tasto
Tasto Esc quindi il x tasto. Questo rende ESC il arrivo prefissoLa combinazione MC-x si intende
Controllo ESCx, oppure premere il tasto Esc quindi tenere premuto il tasto Ctrl mentre si preme il tasto x
chiave.)

I comandi Readline possono essere numerici argomenti, che normalmente fungono da conteggio ripetuto.
A volte, tuttavia, è il segno dell'argomento che è significativo. Passare un
argomento negativo per un comando che agisce nella direzione in avanti (ad esempio, linea di morte) cause
quel comando per agire in una direzione all'indietro. Comandi il cui comportamento con argomenti
Le deviazioni da quanto sopra sono indicate di seguito.

Quando un comando è descritto come uccisione testo, il testo eliminato viene salvato per un possibile futuro
recupero (strattone). Il testo eliminato viene salvato in un kill anelloLe uccisioni consecutive causano
il testo da accumulare in un'unità, che può essere copiata tutta in una volta. Comandi che
non eliminare il testo, separa i blocchi di testo sul kill ring.

Readline Inizializzazione
Readline viene personalizzato inserendo i comandi in un file di inizializzazione (il inputrc file).
Il nome di questo file è preso dal valore del INPUTRC variabile. Se quella variabile
non è impostato, il valore predefinito è ~ / .inputrcQuando un programma che utilizza la libreria readline
si avvia, il file di inizializzazione viene letto e vengono impostati i collegamenti dei tasti e le variabili.
Nel file di inizializzazione readline sono consentiti solo alcuni costrutti di base. Vuoto
le linee vengono ignorate. Le linee che iniziano con a # sono commenti. Le righe che iniziano con a $
indicano costrutti condizionali. Altre righe indicano associazioni di tasti e impostazioni delle variabili.

Le associazioni di tasti predefinite possono essere modificate con un inputrc file. Altri programmi che utilizzano
questa libreria può aggiungere i propri comandi e associazioni.

Ad esempio, il posizionamento

M-Control-u: argomento universale
or
C-Meta-u: argomento universale
nella inputrc farebbe eseguire a MCu il comando readline argomento-universale.

Sono riconosciuti i seguenti nomi di caratteri simbolici: RUBOUT, IL, ESC, LFD, NUOVA LINEA,
RET, RITORNO, SPC, SPACEe TAB.

Oltre ai nomi dei comandi, readline consente di associare le chiavi a una stringa che è
inserito quando si preme il tasto (a macro).

Readline Le Associazioni
La sintassi per controllare le associazioni dei tasti in inputrc il file è semplice. Tutto ciò che è
richiesto è il nome del comando o il testo di una macro e una sequenza di tasti a cui si riferisce
dovrebbe essere vincolato. Il nome può essere specificato in uno dei due modi: come nome di chiave simbolico,
possibilmente con meta- or Controllo- prefissi o come sequenza di tasti.

Quando si utilizza il modulo nome chiave:nome-funzione or macro, nome chiave è il nome di una chiave scritta
in inglese. Per esempio:

Control-u: argomento universale
Meta-Rubout: parola-uccisione all'indietro
Control-o: "> output"

Nell'esempio sopra, Cu è legato alla funzione argomento-universale, M-DEL è vincolato a
la funzione kill-word all'indietroe Co è obbligato ad eseguire la macro espressa a destra
lato destro (ovvero, per inserire il testo ``> output'' nella riga).

Nella seconda forma, "keyseq":nome-funzione or macro, sequenza di tasti differisce dalla nome chiave sopra in
che le stringhe che indicano un'intera sequenza di tasti possono essere specificate inserendo la sequenza
tra virgolette doppie. È possibile utilizzare alcuni tasti di escape in stile GNU Emacs, come nel seguente
ad esempio, ma i nomi dei caratteri simbolici non vengono riconosciuti.

"\Cu": argomento universale
"\Cx\Cr": rilettura del file di inizializzazione
"\e[11~": "Tasto funzione 1"

In questo esempio, Cu è di nuovo vincolato alla funzione argomento-universale. Cx Cr è legato
alla funzione rileggere il file inite ESC [ 1 1 ~ è obbligato a inserire il testo ``Funzione
Chiave 1''.

Il set completo di sequenze di escape in stile GNU Emacs è
\C- prefisso di controllo
\M- prefisso meta
\e un personaggio di fuga
\\ backslash
\" letterale "
\' letterale '

Oltre alle sequenze di escape in stile GNU Emacs, è disponibile un secondo set di escape con barra rovesciata
disponibile:
\a avviso (campanello)
\b backspace
\d delete
\f feed di moduli
\n nuova linea
\r ritorno a capo
\t tab orizzontale
\v tab verticale
\nnn il carattere a otto bit il cui valore è il valore ottale nnn (da uno a tre
cifre)
\xHH il carattere a otto bit il cui valore è il valore esadecimale HH (uno o due
cifre esadecimali)

Quando si immette il testo di una macro, è necessario utilizzare virgolette singole o doppie per indicare un
definizione della macro. Il testo non quotato si presume sia un nome di funzione. Nel corpo della macro, il
Le escape con barra rovesciata descritte sopra sono espanse. La barra rovesciata virgoletterà qualsiasi altro carattere
nel testo macro, inclusi " e '.

Bash consente di visualizzare o modificare le associazioni di tasti di readline correnti con legare
comando incorporato. La modalità di modifica può essere cambiata durante l'uso interattivo utilizzando il -o
opzione per il set comando integrato (vedi SHELL COSTRUZIONE COMANDI sotto).

Readline Variabili
Readline ha variabili che possono essere utilizzate per personalizzare ulteriormente il suo comportamento. Una variabile può
essere impostato nel inputrc file con una dichiarazione del tipo

set nome-variabile APPREZZIAMO

Salvo dove diversamente indicato, le variabili readline possono assumere i valori On or sconto (senza riguardo a
caso). I nomi di variabili non riconosciuti vengono ignorati. Quando viene letto un valore di variabile, vuoto o
i valori nulli, "on" (non sensibile alle maiuscole/minuscole) e "1" sono equivalenti a OnTutti gli altri valori sono
equivalente scontoLe variabili e i loro valori predefiniti sono:

stile campana (udibile)
Controlla cosa succede quando readline vuole far suonare il campanello del terminale. Se impostato su
nessuna, readline non suona mai il campanello. Se impostato su visibile, readline utilizza un visibile
campanello se disponibile. Se impostato su udibile, readline tenta di suonare il
campanello del terminale.
bind-tty-caratteri-speciali (Sopra)
Se impostato su On, readline tenta di associare i caratteri di controllo trattati in modo speciale da
il driver del terminale del kernel ai suoi equivalenti readline.
statistiche colorate (Spento)
Se impostato su On, readline visualizza i possibili completamenti utilizzando colori diversi per
indicano il tipo di file. Le definizioni dei colori sono prese dal valore del
LS_COLORI variabile d'ambiente.
commento-inizio (``#'')
La stringa che viene inserita quando readline inserisci-commento comando viene eseguito.
Questo comando è vincolato a M-# in modalità emacs e per # in modalità comando vi.
completamento-ignora-maiuscole (Spento)
Se impostato su On, readline esegue la corrispondenza e il completamento del nome del file in un
senza distinzione tra maiuscole e minuscole.
lunghezza di visualizzazione del prefisso di completamento (0)
La lunghezza in caratteri del prefisso comune di un elenco di possibili completamenti
che viene visualizzato senza modifiche. Se impostato su un valore maggiore di zero,
i prefissi comuni più lunghi di questo valore vengono sostituiti con un'ellissi quando
visualizzazione dei possibili completamenti.
elementi di query di completamento (100)
Questo determina quando all'utente viene chiesto di visualizzare il numero di possibili
completamenti generati dal possibili completamenti comando. Può essere impostato su qualsiasi
valore intero maggiore o uguale a zero. Se il numero di possibili completamenti
è maggiore o uguale al valore di questa variabile, all'utente viene chiesto se
oppure no, desidera visualizzarli; altrimenti vengono semplicemente elencati sul terminale.
convertire-meta (Sopra)
Se impostato su On, readline convertirà i caratteri con l'ottavo bit impostato su ASCII
sequenza di tasti eliminando l'ottavo bit e anteponendo un carattere di escape (in
effetto, usando la fuga come arrivo prefisso).
disabilita-completamento (Spento)
Se impostato su On, readline inibirà il completamento delle parole. I caratteri di completamento saranno
inseriti nella riga come se fossero stati mappati su auto-inserimento.
modalità di modifica (emacs)
Controlla se readline inizia con un set di associazioni di tasti simili a Emacs or vi.
modalità di modifica può essere impostato su emacs or vi.
caratteri di controllo dell'eco (Sopra)
Quando impostato su On, sui sistemi operativi che indicano di supportarlo, readline echo
un carattere corrispondente a un segnale generato dalla tastiera.
abilita-tastiera (Spento)
Quando impostato su On, readline tenterà di abilitare la tastiera dell'applicazione quando è
chiamato. Alcuni sistemi ne hanno bisogno per abilitare i tasti freccia.
abilita-meta-chiave (Sopra)
Quando impostato su On, readline tenterà di abilitare qualsiasi tasto modificatore meta sul terminale
afferma di supportare quando viene chiamato. Su molti terminali, il tasto meta viene utilizzato per
inviare caratteri a otto bit.
espandi-tilde (Spento)
Se impostato su On, l'espansione della tilde viene eseguita quando readline tenta di completare la parola.
punto di conservazione della storia (Spento)
Se impostato su On, il codice storico tenta di posizionare il punto nella stessa posizione su ogni
riga della cronologia recuperata con storia precedente or prossima storia.
dimensione della storia (0)
Imposta il numero massimo di voci della cronologia salvate nell'elenco della cronologia. Se impostato su
zero, tutte le voci della cronologia esistenti vengono eliminate e non vengono salvate nuove voci. Se
impostato su un valore inferiore a zero, il numero di voci della cronologia non è limitato.
Per impostazione predefinita, il numero di voci della cronologia non è limitato.
modalità di scorrimento orizzontale (Spento)
Quando impostato su On, fa sì che readline utilizzi una singola riga per la visualizzazione, scorrendo l'input
orizzontalmente su una singola linea dello schermo quando diventa più lunga della larghezza dello schermo
anziché passare a una nuova riga.
input-meta (Spento)
Se impostato su On, readline abiliterà l'input a otto bit (ovvero, non rimuoverà l'
bit alto dai caratteri che legge), indipendentemente da ciò che il terminale afferma
può supportare. Il nome meta-bandiera è sinonimo di questa variabile.
isearch-terminators (``C-[C-J'')
La stringa di caratteri che dovrebbe terminare una ricerca incrementale senza
eseguendo successivamente il carattere come comando. Se questa variabile non è stata
dato un valore, i caratteri ESC e CJ terminerà una ricerca incrementale.
mappa dei tasti (emacs)
Imposta la mappa dei tasti di Readline corrente. L'insieme dei nomi di mappa dei tasti validi è emacs,
emacs-standard, emacs-meta, emacs-ctlx, vi, comando vie vi-inserire. vi is
equivalente comando vi; emacs è equivalente emacs-standardIl valore predefinito
is emacs; il valore di modalità di modifica influisce anche sulla mappa dei tasti predefinita.
timeout della sequenza delle chiavi (500)
Specifica la durata readline aspetterà un carattere quando legge un ambiguo
sequenza di tasti (una che può formare una sequenza di tasti completa utilizzando l'input letto così
lontano, o può accettare input aggiuntivi per completare una sequenza di tasti più lunga). Se nessun input
viene ricevuto entro il timeout, readline userà la chiave più breve ma completa
sequenza. Il valore è specificato in millisecondi, quindi un valore di 1000 significa che
readline attenderà un secondo per input aggiuntivi. Se questa variabile è impostata su un
valore minore o uguale a zero, oppure a un valore non numerico, readline aspetterò
finché non viene premuto un altro tasto per decidere quale sequenza di tasti completare.
directory di marcatura (Sopra)
Se impostato su On, i nomi delle directory completati hanno una barra aggiunta.
segna-linee-modificate (Spento)
Se impostato su On, le righe della cronologia che sono state modificate vengono visualizzate con un segno di spunta precedente
asterisco (*).
contrassegna-directory-con-collegamento-simbolico (Spento)
Se impostato su On, i nomi completati che sono collegamenti simbolici alle directory hanno una barra
aggiunto (soggetto al valore di directory di marcatura).
corrispondenza-file-nascosti (Sopra)
Questa variabile, quando impostata su On, fa sì che readline corrisponda ai file i cui nomi iniziano
con un `.' (file nascosti) quando si esegue il completamento del nome del file. Se impostato su sconto, l'
Per completare il nome del file, l'utente deve fornire il carattere `.' iniziale.
menu-completo-visualizzazione-prefisso (Spento)
Se impostato su On, il completamento del menu visualizza il prefisso comune dell'elenco dei possibili
completamenti (che potrebbero essere vuoti) prima di scorrere l'elenco.
output-meta (Spento)
Se impostato su On, readline visualizzerà i caratteri con l'ottavo bit impostato direttamente
piuttosto che come una sequenza di escape con prefisso meta.
completamento delle pagine (Sopra)
Se impostato su On, readline utilizza un interno Scopri di più-simile a un cercapersone per visualizzare una schermata di
possibili completamenti alla volta.
completamenti di stampa orizzontalmente (Spento)
Se impostato su On, readline visualizzerà i completamenti con le corrispondenze ordinate orizzontalmente in
in ordine alfabetico, anziché in basso sullo schermo.
ripristina tutto a nuova riga (Spento)
Se impostato su On, readline annullerà tutte le modifiche alle righe della cronologia prima di tornare quando
accettare-line viene eseguito. Per impostazione predefinita, le righe della cronologia possono essere modificate e conservate
elenchi di annullamento individuali nelle chiamate a readline.
mostra-tutto-se-ambiguo (Spento)
Questo modifica il comportamento predefinito delle funzioni di completamento. Se impostato su On, parole
che hanno più di un possibile completamento fanno sì che le corrispondenze vengano elencate
immediatamente invece di suonare il campanello.
mostra-tutto-se-non-modificato (Spento)
Ciò modifica il comportamento predefinito delle funzioni di completamento in modo simile
a mostra-tutto-se-ambiguo. Se impostato su On, parole che hanno più di una possibile
completamento senza alcun possibile completamento parziale (i possibili completamenti non
condividono un prefisso comune) fanno sì che le corrispondenze vengano elencate immediatamente invece di
suonare il campanello.
mostra-modalità-nel-prompt (Spento)
Se impostato su On, aggiungi un carattere all'inizio del prompt che indica la modifica
modalità: emacs (@), comando vi (:) o inserimento vi (+).
salta-testo-completato (Spento)
Se impostato su On, questo modifica il comportamento di completamento predefinito quando si inserisce un singolo
corrisponde alla linea. È attivo solo quando si esegue il completamento a metà
una parola. Se abilitato, readline non inserisce caratteri dal completamento che
abbinare i caratteri dopo il punto nella parola che viene completata, quindi parti della parola
che seguono il cursore non vengono duplicati.
statistiche visibili (Spento)
Se impostato su On, un carattere che indica il tipo di file come riportato da stat(2) è allegato
al nome del file quando si elencano i possibili completamenti.

Readline Condizionale Costruisce
Readline implementa una funzionalità simile nello spirito alle funzionalità di compilazione condizionale
del preprocessore C che consente di eseguire associazioni di tasti e impostazioni variabili come
il risultato dei test. Sono utilizzate quattro direttive parser.

$se . $se la costruzione consente di effettuare associazioni in base alla modalità di modifica,
terminale utilizzato o l'applicazione che utilizza readline. Il testo del test
si estende fino alla fine della riga; non sono necessari caratteri per isolarlo.

modo . modalità= forma del $se la direttiva viene utilizzata per verificare se readline è in
modalità emacs o vi. Può essere utilizzato insieme a set mappa dei tasti
comando, ad esempio, per impostare i binding nel emacs-standard e emacs-ctlx
mappe dei tasti solo se readline si avvia in modalità emacs.

termine . termine= il modulo può essere utilizzato per includere associazioni di tasti specifiche del terminale,
forse per associare le sequenze di tasti emesse dai tasti funzione del terminale.
La parola sul lato destro del = viene testato sia con il nome completo di
il terminale e la parte del nome del terminale prima del primo -. Questo
consente sole per abbinare entrambi sole e sole-cmd, Per esempio.

applicazione
. applicazione Il costrutto viene utilizzato per includere impostazioni specifiche dell'applicazione.
Ogni programma che utilizza la libreria readline imposta il applicazione Nome, E un
il file di inizializzazione può testare un valore particolare. Questo potrebbe essere usato per
associare sequenze di tasti a funzioni utili per un programma specifico. Per
esempio, il seguente comando aggiunge una sequenza di tasti che cita la corrente
o parola precedente in bash:

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

$endif Questo comando, come visto nell'esempio precedente, termina un $se comando.

$altro Comandi in questo ramo del $se le direttive vengono eseguite se il test fallisce.

$include
Questa direttiva accetta un singolo nome di file come argomento e legge i comandi e
associazioni da quel file. Ad esempio, la seguente direttiva leggerebbe
/ etc / inputrc:

$include / etc / inputrc

Ricerca
Readline fornisce comandi per la ricerca nella cronologia dei comandi (vedere STORIA di seguito)
per le righe contenenti una stringa specificata. Sono disponibili due modalità di ricerca: incrementale e non-
incrementale.

Le ricerche incrementali iniziano prima che l'utente abbia terminato di digitare la stringa di ricerca. Man mano che ogni
carattere della stringa di ricerca viene digitato, readline visualizza la voce successiva dalla cronologia
corrispondente alla stringa digitata finora. Una ricerca incrementale richiede solo il numero di caratteri
come necessario per trovare la voce di cronologia desiderata. I caratteri presenti nel valore del
isearch-terminators Le variabili vengono utilizzate per terminare una ricerca incrementale. Se ciò
alla variabile non è stato assegnato un valore i caratteri Escape e Control-J termineranno
una ricerca incrementale. Control-G interromperà una ricerca incrementale e ripristinerà la
riga originale. Al termine della ricerca, la voce della cronologia contenente la ricerca
la stringa diventa la riga corrente.

Per trovare altre voci corrispondenti nell'elenco della cronologia, digitare Control-S o Control-R come
appropriato. Questo cercherà indietro o avanti nella cronologia per la voce successiva
corrispondente alla stringa di ricerca digitata finora. Qualsiasi altra sequenza di tasti associata a una readline
comando terminerà la ricerca ed eseguirà quel comando. Ad esempio, un nuova linea andrete a
terminare la ricerca e accettare la riga, eseguendo così il comando dalla cronologia
elenco.

Readline ricorda l'ultima stringa di ricerca incrementale. Se vengono digitati due Control-R
senza alcun carattere intermedio che definisca una nuova stringa di ricerca, qualsiasi ricerca ricordata
viene utilizzata la stringa.

Le ricerche non incrementali leggono l'intera stringa di ricerca prima di iniziare la ricerca
righe di cronologia corrispondenti. La stringa di ricerca può essere digitata dall'utente o essere parte della
contenuto della riga corrente.

Readline Comando nomi
Di seguito è riportato un elenco dei nomi dei comandi e delle sequenze di tasti predefinite per
a cui sono vincolati. I nomi dei comandi senza una sequenza di tasti di accompagnamento non sono vincolati da
predefinito. Nelle descrizioni seguenti, punto si riferisce alla posizione corrente del cursore e
marchio si riferisce alla posizione del cursore salvata dal segno di spunta comando. Il testo tra i
punto e segno è indicato come regione.

Comandi da In movimento
inizio riga (Ca)
Spostarsi all'inizio della riga corrente.
fine linea (Ce)
Vai alla fine della linea.
avanti-char (Cfr.)
Sposta avanti un personaggio.
carattere all'indietro (Cb)
Sposta indietro un personaggio.
avanti-parola (Mf)
Vai avanti fino alla fine della parola successiva. Le parole sono composte da caratteri alfanumerici
caratteri (lettere e cifre).
parola all'indietro (Mb)
Torna all'inizio della parola corrente o precedente. Le parole sono composte da
caratteri alfanumerici (lettere e cifre).
shell-forward-word
Vai avanti fino alla fine della parola successiva. Le parole sono delimitate da shell non racchiuse tra virgolette.
metacaratteri.
parola-inversa-del-guscio
Torna all'inizio della parola corrente o precedente. Le parole sono delimitate da
metacaratteri shell non tra virgolette.
schermo pulito (Cl)
Cancella lo schermo lasciando la riga corrente nella parte superiore dello schermo. Con un
argomento, aggiorna la riga corrente senza cancellare lo schermo.
ridisegna-linea-corrente
Aggiorna la riga corrente.

Comandi da Manipolazione , il Storia
accettare-line (Nuova riga, Ritorno)
Accetta la riga indipendentemente da dove si trova il cursore. Se questa riga non è vuota, aggiungi
aggiungerlo all'elenco cronologico in base allo stato del CONTROLLO STORICO variabile. Se la
la linea è una linea della cronologia modificata, quindi ripristina la linea della cronologia al suo originale
stato.
storia precedente (Cp)
Recupera il comando precedente dall'elenco cronologico, spostandosi indietro nell'elenco.
prossima storia (Cn)
Recupera il comando successivo dall'elenco cronologico, spostandosi in avanti nell'elenco.
inizio-storia (M-<)
Passa alla prima riga della cronologia.
fine della storia (M->)
Spostarsi alla fine della cronologia degli input, ovvero alla riga attualmente inserita.
cronologia-ricerca-inversa (Cr)
Cerca all'indietro partendo dalla riga corrente e spostandoti `verso l'alto' attraverso la cronologia come
necessario. Questa è una ricerca incrementale.
cronologia delle ricerche in avanti (Cs)
Cerca in avanti partendo dalla riga corrente e spostandoti `verso il basso' nella cronologia
secondo necessità. Questa è una ricerca incrementale.
cronologia di ricerca inversa non incrementale (Parlamentare)
Cerca all'indietro nella cronologia partendo dalla riga corrente utilizzando un non-
ricerca incrementale di una stringa fornita dall'utente.
cronologia delle ricerche in avanti non incrementali (Mn)
Cerca in avanti nella cronologia utilizzando una ricerca non incrementale per una stringa
forniti dall'utente.
storia-ricerca-avanti
Cerca in avanti nella cronologia la stringa di caratteri tra l'inizio
della riga corrente e del punto. Questa è una ricerca non incrementale.
ricerca-storia-indietro
Cerca all'indietro nella cronologia la stringa di caratteri tra l'inizio
della riga corrente e del punto. Questa è una ricerca non incrementale.
yank-nth-arg (MCy)
Inserire il primo argomento del comando precedente (solitamente la seconda parola del
riga precedente) al punto. Con un argomento n, inserisci il file nparola precedente
comando (le parole nel comando precedente iniziano con la parola 0). Un argomento negativo
inserisce il nparola dalla fine del comando precedente. Una volta che l'argomento n is
calcolato, l'argomento viene estratto come se "!n"l'espansione della storia era stata
specificato.
yank-last-arg (M-., M-_)
Inserisci l'ultimo argomento del comando precedente (l'ultima parola del comando precedente)
voce della cronologia). Con un argomento numerico, comportarsi esattamente come yank-nth-arg.
Chiamate successive a yank-last-arg tornare indietro nell'elenco della cronologia, inserendo il
ultima parola (o la parola specificata dall'argomento alla prima chiamata) di ogni riga in
turno. Qualsiasi argomento numerico fornito a queste chiamate successive determina il
direzione per muoversi nella cronologia. Un argomento negativo cambia la direzione
attraverso la storia (indietro o avanti). Le strutture di espansione della storia sono utilizzate
per estrarre l'ultima parola, come se fosse stata specificata l'espansione della cronologia "!$".
shell-expand-line (MCe)
Espandi la riga come fa la shell. Questo esegue l'espansione degli alias e della cronologia come
così come tutte le espansioni delle parole shell. Vedi STORIA ESPANSIONE sotto per un
descrizione dell'espansione della storia.
cronologia-espandi-linea (M-^)
Esegui l'espansione della cronologia sulla riga corrente. Vedi STORIA ESPANSIONE sotto per un
descrizione dell'espansione della storia.
spazio-magico
Esegue l'espansione della cronologia sulla riga corrente e inserisce uno spazio. Vedi STORIA
ESPANSIONE di seguito una descrizione dell'espansione della storia.
alias-espandi-linea
Esegui l'espansione dell'alias sulla riga corrente. Vedi ALIAS sopra per una descrizione
di espansione degli alias.
cronologia-e-alias-espandi-linea
Esegue l'espansione della cronologia e degli alias sulla riga corrente.
inserisci-ultimo-argomento (M-., M-_)
Un sinonimo di yank-last-arg.
operare-e-ottenere-il-prossimo (Co)
Accetta la riga corrente per l'esecuzione e recupera la riga successiva relativa alla
riga corrente dalla cronologia per la modifica. Qualsiasi argomento viene ignorato.
modifica-ed-esegui-comando (C-xC-e)
Richiama un editor sulla riga di comando corrente ed esegue il risultato come shell
comandi. Bash tentativi di invocare $VISIVO, $ EDITORe emacs come editore, in
quell'ordine.

Comandi da Cambiare Testo
fine del file (Solitamente CD)
Il carattere che indica la fine del file come impostato, ad esempio, da ``stty''. Se questo
il carattere viene letto quando non ci sono caratteri sulla riga e il punto è a
all'inizio della riga, Readline lo interpreta come la fine dell'input e restituisce EOF.
cancella-char (CD)
Elimina il carattere nel punto. Se questa funzione è associata allo stesso carattere di
il tty EOF carattere, come CD comunemente è, vedi sopra per gli effetti.
back-delete-char (Svuotamento)
Elimina il carattere dietro il cursore. Quando viene fornito un argomento numerico, salva il
testo cancellato sul kill ring.
avanti-indietro-elimina-carattere
Elimina il carattere sotto il cursore, a meno che il cursore non si trovi alla fine della riga,
in tal caso il carattere dietro il cursore viene eliminato.
inserto-citato (Cq, Curriculum Vitae)
Aggiungi il carattere successivo digitato alla riga letteralmente. Ecco come inserire
personaggi come Cq, per esempio.
tabulazione-inserimento (Cv SCHEDA)
Inserire un carattere di tabulazione.
auto-inserimento (un, b, A, 1, !, ...)
Inserire il carattere digitato.
caratteri di trasposizione (Ct)
Trascina il carattere prima del punto in avanti sul carattere nel punto, spostando il punto
anche in avanti. Se il punto è alla fine della linea, allora questo traspone i due
caratteri prima del punto. Gli argomenti negativi non hanno effetto.
trasporre-parole (Monte)
Trascina la parola prima del punto oltre la parola dopo il punto, spostando il punto su quella parola
anche. Se il punto è alla fine della riga, questo traspone le ultime due parole su
la linea.
parola maiuscola (Mu)
Trasforma in maiuscolo la parola corrente (o successiva). Con un argomento negativo, trasforma in maiuscolo la parola
parola precedente, ma non spostare il punto.
downcase-parola (Milioni di)
Trasforma in minuscolo la parola corrente (o successiva). Con un argomento negativo, trasforma in minuscolo la parola
parola precedente, ma non spostare il punto.
maiuscolo-parola (Mc)
Metti in maiuscolo la parola corrente (o successiva). Con un argomento negativo, metti in maiuscolo
la parola precedente, ma non spostare il punto.
modalità di sovrascrittura
Attiva/disattiva la modalità di sovrascrittura. Con un argomento numerico positivo esplicito, passa a
modalità di sovrascrittura. Con un argomento numerico non positivo esplicito, passa all'inserimento
modalità. Questo comando ha effetto solo emacs modalità; vi la modalità sovrascrive in modo diverso.
Ogni chiamata a linea di lettura() inizia in modalità inserimento. In modalità sovrascrittura, i caratteri associati
a auto-inserimento sostituire il testo nel punto anziché spostarlo verso destra.
Personaggi legati a back-delete-char sostituire il carattere prima del punto con un
spazio. Per impostazione predefinita, questo comando non è associato.

Uccisione e Strattonando
linea di morte (Ck)
Elimina il testo dal punto fino alla fine della riga.
linea-uccisione-indietro (Cx Rubout)
Uccidi all'indietro fino all'inizio della riga.
scartare la linea unix (Cu)
Elimina all'indietro dal punto all'inizio della riga. Il testo eliminato viene salvato su
l'anello mortale.
uccidere tutta la linea
Uccidi tutti i personaggi sulla riga corrente, indipendentemente da dove si trovi il punto.
parola d'ordine (Md)
Uccidi dal punto alla fine della parola corrente, o se tra le parole, alla fine di
la parola successiva. I confini delle parole sono gli stessi di quelli usati da avanti-parola.
kill-word all'indietro (M-Rubout)
Elimina la parola dietro il punto. I confini delle parole sono gli stessi di quelli usati da
parola all'indietro.
parola-uccidi-guscio (Md)
Uccidi dal punto alla fine della parola corrente, o se tra le parole, alla fine di
la parola successiva. I confini delle parole sono gli stessi di quelli usati da shell-forward-word.
shell-backward-kill-word (M-Rubout)
Elimina la parola dietro il punto. I confini delle parole sono gli stessi di quelli usati da
parola-inversa-del-guscio.
unix-word-rubout (Cw)
Elimina la parola dietro il punto, usando lo spazio bianco come confine di parola. Il testo eliminato
viene salvato sul kill-ring.
unix-filename-rubout
Elimina la parola dietro il punto, usando lo spazio bianco e il carattere barra come parola
confini. Il testo eliminato viene salvato sul kill-ring.
cancella-spazio-orizzontale (M-\)
Elimina tutti gli spazi e le tabulazioni attorno al punto.
kill-regione
Elimina il testo nella regione corrente.
copia-regione-come-kill
Copia il testo nella regione nel kill buffer.
copia-parola-al-indietro
Copia la parola prima del punto nel kill buffer. I limiti delle parole sono gli stessi di
parola all'indietro.
copia-inoltra-parola
Copia la parola che segue il punto nel kill buffer. I confini delle parole sono gli stessi.
as avanti-parola.
strattone (Ci)
Tirare la parte superiore dell'anello di protezione nel buffer in questo punto.
yank-pop (Mio)
Ruotare l'anello di sicurezza e tirare la nuova parte superiore. Funziona solo dopo strattone or yank-pop.

Numerico argomenti
argomento-cifra (M-0, M-1, ..., M--)
Aggiungi questa cifra all'argomento già accumulato oppure inizia un nuovo argomento. M--
avvia un argomento negativo.
argomento-universale
Questo è un altro modo per specificare un argomento. Se questo comando è seguito da uno o
più cifre, facoltativamente con un segno meno iniziale, quelle cifre definiscono il
argomento. Se il comando è seguito da cifre, l'esecuzione argomento-universale ancora
termina l'argomento numerico, ma viene altrimenti ignorato. Come caso speciale, se questo
il comando è immediatamente seguito da un carattere che non è né una cifra né un segno meno
segno, il conteggio degli argomenti per il comando successivo viene moltiplicato per quattro. L'argomento
count è inizialmente uno, quindi l'esecuzione di questa funzione la prima volta rende
conteggio degli argomenti quattro, una seconda volta porta il conteggio degli argomenti a sedici, e così via.

Completamento
completamento di una (SCHEDA)
Tentare di completare il testo prima del punto. Bash tentativi di completamento
trattando il testo come una variabile (se il testo inizia con $), nome utente (se il testo
inizia con ~), hostname (se il testo inizia con @), o comando (inclusi gli alias
e funzioni) a turno. Se nessuno di questi produce una corrispondenza, il completamento del nome del file è
tentato.
possibili completamenti (M-?)
Elenca i possibili completamenti del testo prima del punto.
inserimenti-completamenti (M-*)
Inserire tutti i completamenti del testo prima del punto che sarebbero stati generati da
possibili completamenti.
menu-completo
Simile a completamento di una, ma sostituisce la parola da completare con una singola corrispondenza da
l'elenco dei possibili completamenti. Esecuzione ripetuta di menu-completo passi
attraverso l'elenco dei possibili completamenti, inserendo ogni corrispondenza a turno. Alla fine
dell'elenco dei completamenti, suona la campana (soggetto all'impostazione di stile campana)
e il testo originale viene ripristinato. Un argomento di n si muove n posizioni in avanti in
l'elenco delle corrispondenze; ​​un argomento negativo può essere utilizzato per spostarsi all'indietro attraverso
elenco. Questo comando è destinato ad essere vincolato a TAB, ma per impostazione predefinita non è vincolato.
menu-completo-indietro
Uguale a menu-completo, ma si sposta all'indietro attraverso l'elenco dei possibili
completamenti, come se menu-completo era stato dato un argomento negativo. Questo comando
non è vincolato per impostazione predefinita.
cancella-carattere-o-lista
Elimina il carattere sotto il cursore se non si trova all'inizio o alla fine della riga
(piace cancella-char). Se alla fine della riga, si comporta in modo identico a
possibili completamentiPer impostazione predefinita, questo comando non è associato.
nome-file-completo (M-/)
Tenta di completare il nome del file sul testo prima del punto.
possibili-completamenti-di-nomi-file (Cx /)
Elenca i possibili completamenti del testo prima del punto, trattandolo come un nome di file.
nome utente completo (M-~)
Tenta di completare il testo prima del punto, trattandolo come un nome utente.
possibili-completamenti-nome-utente (Cx ~)
Elenca i possibili completamenti del testo prima del punto, trattandolo come un nome utente.
variabile completa (M-$)
Tenta di completare il testo prima del punto, trattandolo come una variabile shell.
possibili-completamenti-variabili (Cx $)
Elenca i possibili completamenti del testo prima del punto, trattandolo come una shell
variabile.
nome host completo (M-@)
Tenta di completare il testo prima del punto, trattandolo come un nome host.
possibili-completamenti-nome-host (Cx @)
Elenca i possibili completamenti del testo prima del punto, trattandolo come un nome host.
comando completo (M-!)
Tenta di completare il testo prima del punto, trattandolo come un nome di comando.
Il completamento del comando tenta di abbinare il testo ad alias, parole riservate,
funzioni shell, comandi incorporati della shell e infine nomi di file eseguibili, in quest'ordine.
possibili-completamenti-di-comandi (Cx !)
Elenca i possibili completamenti del testo prima del punto, trattandolo come un comando
nome.
cronologia completa dinamica (M-TAB)
Tenta di completare il testo prima del punto, confrontando il testo con le righe da
l'elenco cronologico delle possibili corrispondenze di completamento.
dabbrev-espandi
Tenta di completare il menu sul testo prima del punto, confrontando il testo con le righe
dall'elenco cronologico per possibili corrispondenze di completamento.
completo-in-apparecchio-per-le-braccia (M-{)
Eseguire il completamento del nome del file e inserire l'elenco dei possibili completamenti allegato
tra parentesi graffe in modo che l'elenco sia disponibile per la shell (vedere Bretelle Espansione sopra).

tastiera Macro
start-kbd-macro (Cx ()
Inizia a salvare i caratteri digitati nella macro della tastiera corrente.
fine-kbd-macro (Cx ))
Interrompere il salvataggio dei caratteri digitati nella macro della tastiera corrente e memorizzare il
definizione.
chiama-ultima-kbd-macro (Cx e)
Rieseguire l'ultima macro della tastiera definita, rendendo i caratteri nella macro
appaiono come se fossero stati digitati sulla tastiera.
stampa-ultima-kbd-macro ()
Stampa l'ultima macro della tastiera definita in un formato adatto per inputrc file.

Miscellanea
rileggere il file init (Cx Cr)
Leggi il contenuto del inputrc file e incorporare eventuali associazioni o variabili
incarichi trovati lì.
abortire (Cg)
Interrompere il comando di modifica corrente e suonare il campanello del terminale (soggetto a
impostazione di stile campana).
versione maiuscola (Mamma, Mb, M-x, ...)
Se il carattere metafatto x è minuscolo, esegui il comando che è associato a
carattere maiuscolo corrispondente.
prefisso-meta (ESC)
Metafy il carattere successivo digitato. ESC f è equivalente Meta-f.
disfare (C-_, Cx Cu)
Annullamento incrementale, memorizzato separatamente per ogni riga.
ripristina la linea (Sig)
Annulla tutte le modifiche apportate a questa riga. È come eseguire il comando disfare comando sufficiente
volte per riportare la linea al suo stato iniziale.
tilde-espandi (M-&)
Esegui l'espansione della tilde sulla parola corrente.
segno di spunta (C-@, M- )
Imposta il segno sul punto. Se viene fornito un argomento numerico, il segno viene impostato su
quella posizione.
scambio-punto e segno (Cx Cx)
Scambia il punto con il segno. La posizione corrente del cursore viene impostata su quella salvata
posizione e la vecchia posizione del cursore viene salvata come segno.
ricerca di caratteri (C-])
Un carattere viene letto e il punto viene spostato alla successiva occorrenza di quel carattere.
il conteggio negativo ricerca le occorrenze precedenti.
ricerca-carattere-indietro (MC-])
Un carattere viene letto e il punto viene spostato all'occorrenza precedente di quel carattere
carattere. Un conteggio negativo ricerca le occorrenze successive.
salta-sequenza-csi
Leggere abbastanza caratteri per consumare una sequenza multi-chiave come quelle definite per
tasti come Home e End. Tali sequenze iniziano con un indicatore di sequenza di controllo
(CSI), solitamente ESC-[. Se questa sequenza è legata a "\[", i tasti che producono tale
le sequenze non avranno alcun effetto a meno che non siano esplicitamente vincolate a un comando readline,
invece di inserire caratteri vaganti nel buffer di modifica. Questo non è vincolato da
predefinito, ma solitamente vincolato a ESC-[.
inserisci-commento (M-#)
Senza un argomento numerico, il valore della readline commento-inizio la variabile è
inserito all'inizio della riga corrente. Se viene fornito un argomento numerico,
questo comando agisce come un interruttore: se i caratteri all'inizio della riga non
non corrisponde al valore di commento-inizio, il valore viene inserito, altrimenti il
personaggi in commento-inizio vengono cancellati dall'inizio della riga. In entrambi i casi
caso, la riga viene accettata come se fosse stata digitata una nuova riga. Il valore predefinito di
commento-inizio fa sì che questo comando trasformi la riga corrente in un commento shell. Se un
l'argomento numerico fa sì che il carattere di commento venga rimosso, la riga sarà
eseguito dalla shell.
glob-parola-completa (Mg)
La parola prima del punto viene trattata come un modello per l'espansione del percorso, con un
asterisco aggiunto implicitamente. Questo modello viene utilizzato per generare un elenco di corrispondenze
nomi di file per possibili completamenti.
glob-expand-word (Cx *)
La parola prima del punto viene trattata come un modello per l'espansione del percorso e l'elenco
dei nomi di file corrispondenti viene inserito, sostituendo la parola. Se un argomento numerico è
fornito, un asterisco viene aggiunto prima dell'espansione del percorso.
espansioni-elenco-glob (Cx g)
L'elenco delle espansioni che sarebbero state generate da glob-expand-word is
visualizzato e la linea viene ridisegnata. Se viene fornito un argomento numerico, viene visualizzato un asterisco
viene aggiunto prima dell'espansione del percorso.
funzioni di dump
Visualizza tutte le funzioni e i relativi tasti di scelta rapida nel flusso di output readline.
Se viene fornito un argomento numerico, l'output viene formattato in modo tale che
può essere reso parte di un inputrc file.
variabili di dump
Stampa tutte le variabili readline impostabili e i loro valori su readline
flusso di output. Se viene fornito un argomento numerico, l'output viene formattato in modo tale
un modo in cui può essere reso parte di un inputrc file.
dump-macro
Stampa tutte le sequenze di tasti readline associate alle macro e le stringhe che contengono
output. Se viene fornito un argomento numerico, l'output viene formattato in modo tale
che può essere reso parte di un inputrc file.
versione-display-shell (Cx Curriculum Vitae)
Visualizza le informazioni sulla versione dell'istanza corrente di bash.

Programmabile Completamento
Quando si tenta il completamento di una parola per un argomento di un comando per il quale è richiesto un completamento
specifica (a specifiche di comp) è stato definito utilizzando il completamento di una incorporato (vedi SHELL COSTRUZIONE
COMANDI di seguito), vengono richiamate le funzionalità di completamento programmabile.

Per prima cosa, viene identificato il nome del comando. Se la parola del comando è una stringa vuota
(completamento tentato all'inizio di una riga vuota), qualsiasi compspec definito con -E
opzione a completamento di una viene utilizzato. Se è stato definito un compspec per quel comando, il compspec
viene utilizzato per generare l'elenco dei possibili completamenti per la parola. Se la parola di comando è
un percorso completo, viene prima cercato un compspec per il percorso completo. Se non c'è alcun compspec
viene trovato il percorso completo, viene effettuato un tentativo di trovare un compspec per la porzione
dopo la barra finale. Se queste ricerche non danno come risultato un compspec, qualsiasi compspec
definito con il -D opzione a completamento di una viene utilizzato come predefinito.

Una volta trovato un compspec, viene utilizzato per generare l'elenco delle parole corrispondenti. Se un
compspec non è stato trovato, il valore predefinito bash completamento come descritto sopra sotto Completamento is
eseguita.

Innanzitutto, vengono utilizzate le azioni specificate da compspec. Vengono utilizzate solo le corrispondenze precedute da
la parola che viene completata viene restituita. Quando il -f or -d l'opzione è usata per il nome del file o
completamento del nome della directory, variabile shell FIGNORE viene utilizzato per filtrare le corrispondenze.

Tutti i completamenti specificati da un modello di espansione del percorso al -G vengono generate le opzioni
successivo. Le parole generate dal modello non devono necessariamente corrispondere alla parola che viene completata. Il
GLOBIGNORE la variabile shell non viene utilizzata per filtrare le corrispondenze, ma la FIGNORE la variabile è
Usato.

Successivamente, la stringa specificata come argomento per -W l'opzione è considerata. La stringa è
prima divisione utilizzando i caratteri nel IFS variabile speciale come delimitatori. Citazioni shell
è onorato. Ogni parola viene quindi espansa utilizzando l'espansione delle parentesi graffe, l'espansione della tilde, il parametro
e l'espansione delle variabili, la sostituzione dei comandi e l'espansione aritmetica, come descritto sopra
per ESPANSIONEI risultati vengono suddivisi utilizzando le regole descritte sopra in Word
ScissioneI risultati dell'espansione vengono confrontati con il prefisso della parola
completato e le parole corrispondenti diventano i possibili completamenti.

Dopo che queste corrispondenze sono state generate, qualsiasi funzione shell o comando specificato con
-F e -C opzioni viene invocato. Quando il comando o la funzione viene invocato, il COMP_LINE,
COMP_POINT, COMP_KEYe COMP_TYPE alle variabili vengono assegnati valori come descritto sopra sotto
Conchiglia VariabiliSe viene richiamata una funzione shell, PAROLE COMPLETE e COMP_CWORD
vengono impostate anche le variabili. Quando la funzione o il comando viene richiamato, il primo argomento ($1)
è il nome del comando i cui argomenti vengono completati, il secondo argomento ($2)
è la parola che viene completata, e il terzo argomento ($3) è la parola che precede la parola
in fase di completamento sulla riga di comando corrente. Nessun filtraggio dei completamenti generati
contro la parola che viene completata viene eseguita; la funzione o il comando è completo
libertà nel generare le corrispondenze.

Qualsiasi funzione specificata con -F viene invocata per prima. La funzione può utilizzare una qualsiasi delle shell
strutture, tra cui la compgen builtin descritto di seguito, per generare le corrispondenze. Esso
bisogna mettere i possibili completamenti nel COMPRENDI variabile array, una per elemento dell'array.

Successivamente, qualsiasi comando specificato con -C l'opzione viene richiamata in un ambiente equivalente a
sostituzione di comando. Dovrebbe stampare un elenco di completamenti, uno per riga, al
output standard. Se necessario, è possibile utilizzare la barra rovesciata per eseguire l'escape di una nuova riga.

Dopo che tutti i possibili completamenti sono stati generati, qualsiasi filtro specificato con -X
l'opzione viene applicata all'elenco. Il filtro è un modello utilizzato per l'espansione del percorso; un
& nello schema viene sostituito con il testo della parola che viene completata. Un letterale & può
essere preceduto da una barra rovesciata; la barra rovesciata viene rimossa prima di tentare una corrispondenza. Qualsiasi
il completamento che corrisponde al modello verrà rimosso dall'elenco. Un leader ! nega
il modello; in questo caso qualsiasi completamento non corrispondente al modello verrà rimosso.

Infine, qualsiasi prefisso e suffisso specificato con il -P e -S le opzioni vengono aggiunte a ciascuna
membro dell'elenco di completamento e il risultato viene restituito al codice di completamento readline
come l'elenco dei possibili completamenti.

Se le azioni applicate in precedenza non generano alcuna corrispondenza e -o nomi di battesimo opzione
è stato fornito a completamento di una quando è stato definito il compspec, il completamento del nome della directory è
tentato.

Se l' -o più directory l'opzione è stata fornita a completamento di una quando è stato definito il compspec,
viene tentato il completamento del nome della directory e tutte le corrispondenze vengono aggiunte ai risultati del
altre azioni.

Per impostazione predefinita, se viene trovato un compspec, tutto ciò che genera viene restituito al completamento
codice come l'insieme completo dei possibili completamenti. Il valore predefinito bash i completamenti non sono
tentato e il completamento predefinito del nome file di readline è disabilitato. Se -o
bashdefault l'opzione è stata fornita a completamento di una quando è stato definito il compspec, il bash
i completamenti predefiniti vengono tentati se il compspec non genera corrispondenze. Se il -o difetto
l'opzione è stata fornita a completamento di una quando è stato definito il compspec, il valore predefinito di readline
il completamento verrà eseguito se il compspec (e, se tentato, il valore predefinito bash
i completamenti) non generano corrispondenze.

Quando un compspec indica che è desiderato il completamento del nome della directory, il programmabile
le funzioni di completamento forzano readline ad aggiungere una barra ai nomi completati che sono
collegamenti simbolici alle directory, soggetti al valore del directory di marcatura readline
variabile, indipendentemente dall'impostazione del contrassegna-directory-con-collegamento-simbolico variabile readline.

Esiste un supporto per la modifica dinamica dei completamenti. Questo è particolarmente utile quando
utilizzato in combinazione con un completamento predefinito specificato con completamento di una -DÈ possibile
per le funzioni shell eseguite come gestori di completamento per indicare che il completamento dovrebbe essere
riprovato restituendo uno stato di uscita di 124. Se una funzione shell restituisce 124 e cambia
il compspec associato al comando su cui si sta tentando il completamento (fornito
come primo argomento quando la funzione viene eseguita), il completamento programmabile riavvia
dall'inizio, con un tentativo di trovare un nuovo compspec per quel comando. Ciò consente
un insieme di completamenti da costruire dinamicamente man mano che si tenta il completamento, piuttosto che essere
caricati tutti in una volta.

Ad esempio, supponendo che esista una libreria di compspec, ciascuna conservata in un file
corrispondente al nome del comando, la seguente funzione di completamento predefinita sarebbe
carica i completamenti in modo dinamico:

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

STORIA


Quando il -o storia opzione per il set builtin è abilitato, la shell fornisce l'accesso a
command storia, l'elenco dei comandi digitati in precedenza. Il valore del HISTSIZE
La variabile viene utilizzata come numero di comandi da salvare in un elenco cronologico. Il testo del
ultimo HISTSIZE comandi (predefinito 500) viene salvato. La shell memorizza ogni comando nel
elenco cronologico prima dell'espansione dei parametri e delle variabili (vedere ESPANSIONE sopra) ma dopo
l'espansione della cronologia viene eseguita, in base ai valori delle variabili shell STORICOGNORE
e CONTROLLO STORICO.

All'avvio, la cronologia viene inizializzata dal file denominato dalla variabile ARCHIVIO
(predefinito ~/.bash_history). Il file denominato dal valore di ARCHIVIO viene troncato, se
necessario, non contenere più del numero di righe specificato dal valore di
DIMENSIONEFILESTORICO. Se DIMENSIONEFILESTORICO non è impostato o è impostato su null, un valore non numerico o un valore numerico
valore inferiore a zero, il file cronologico non viene troncato. Quando il file cronologico viene letto,
le righe che iniziano con il carattere di commento della cronologia seguito immediatamente da una cifra sono
interpretati come timestamp per la riga della cronologia precedente. Questi timestamp sono facoltativamente
visualizzato in base al valore del FORMATO STORICO DELL'ORA variabile. Quando una shell con
cronologia uscite abilitate, l'ultima $HISTSIZE le linee vengono copiate dall'elenco cronologico a
$FILESTORICO. Se il histappend l'opzione shell è abilitata (vedere la descrizione di negozio per
SHELL COSTRUZIONE COMANDI di seguito), le righe vengono aggiunte al file cronologico, altrimenti
il file della cronologia viene sovrascritto. Se ARCHIVIO non è impostato o se il file della cronologia non è scrivibile,
la cronologia non viene salvata. Se il FORMATO STORICO DELL'ORA la variabile è impostata, i timestamp sono scritti
al file storico, contrassegnato con il carattere di commento storico, in modo che possano essere conservati
tra le sessioni della shell. Questo utilizza il carattere di commento della cronologia per distinguere i timestamp
da altre linee della cronologia. Dopo aver salvato la cronologia, il file della cronologia viene troncato a
non contenere più di DIMENSIONEFILESTORICO linee. Se DIMENSIONEFILESTORICO non è impostato o è impostato su null, un non-
valore numerico o un valore numerico inferiore a zero, il file cronologico non viene troncato.

Il comando incorporato fc (Vedi SHELL COSTRUZIONE COMANDI di seguito) può essere utilizzato per elencare o modificare e
rieseguire una parte dell'elenco cronologico. Il storia builtin può essere utilizzato per visualizzare o
modificare l'elenco cronologico e manipolare il file cronologico. Quando si utilizza la modifica da riga di comando,
comandi di ricerca sono disponibili in ogni modalità di modifica che forniscono accesso alla cronologia
elenco.

La shell consente di controllare quali comandi vengono salvati nell'elenco della cronologia.
CONTROLLO STORICO e STORICOGNORE le variabili possono essere impostate per far sì che la shell salvi solo un sottoinsieme
dei comandi immessi. Il cmdhist opzione shell, se abilitata, fa sì che la shell
tentare di salvare ogni riga di un comando multi-riga nella stessa voce della cronologia, aggiungendo
punto e virgola dove necessario per preservare la correttezza sintattica. litico opzione shell
fa sì che la shell salvi il comando con nuove righe incorporate anziché punti e virgola. Vedere
la descrizione del negozio incorporato sotto sotto SHELL COSTRUZIONE COMANDI per informazioni su
impostazione e disimpostazione delle opzioni della shell.

STORIA ESPANSIONE


La shell supporta una funzionalità di espansione della cronologia simile all'espansione della cronologia in
csh. Questa sezione descrive quali funzionalità di sintassi sono disponibili. Questa funzionalità è abilitata
di default per le shell interattive e può essere disabilitato utilizzando +H opzione per il set
comando integrato (vedi SHELL COSTRUZIONE COMANDI di seguito). Le shell non interattive non eseguono
espansione della cronologia per impostazione predefinita.

Le espansioni della cronologia introducono parole dall'elenco della cronologia nel flusso di input, rendendolo
comandi facili da ripetere, inserisci gli argomenti di un comando precedente nell'input corrente
riga o correggere rapidamente gli errori nei comandi precedenti.

L'espansione della cronologia viene eseguita immediatamente dopo la lettura di una riga completa, prima della shell
lo scompone in parole. Si svolge in due parti. La prima è determinare quale riga
dall'elenco cronologico da utilizzare durante la sostituzione. Il secondo è selezionare porzioni di
quella linea per l'inclusione in quella corrente. La linea selezionata dalla cronologia è la
evento, e le porzioni di quella linea su cui si agisce sono parole. vario modificatori sono
disponibile per manipolare le parole selezionate. La riga è divisa in parole nello stesso
moda come quando si legge l'input, in modo che diversi metacarattere-parole separate circondate da
le virgolette sono considerate una parola. Le espansioni storiche sono introdotte dalla comparsa di
il personaggio di espansione della storia, che è ! per impostazione predefinita. Solo la barra rovesciata (\) e singolo
le virgolette possono citare il personaggio dell'espansione della storia.

Diversi caratteri inibiscono l'espansione della cronologia se trovati immediatamente dopo la cronologia
carattere di espansione, anche se non è racchiuso tra virgolette: spazio, tabulazione, nuova riga, ritorno a capo e =.
Se l' extglob l'opzione shell è abilitata, ( inibirà anche l'espansione.

Diverse opzioni shell impostabili con negozio builtin può essere utilizzato per personalizzare il comportamento
dell'espansione della storia. Se il verifica istologica l'opzione shell è abilitata (vedere la descrizione di
, il negozio incorporato di seguito), e readline viene utilizzato, le sostituzioni della cronologia non sono
immediatamente passata al parser della shell. Invece, la riga espansa viene ricaricata nel
readline buffer di modifica per ulteriori modifiche. Se readline viene utilizzato e il
modifica storica l'opzione shell è abilitata, una sostituzione della cronologia non riuscita verrà ricaricata in
, il readline buffer di modifica per la correzione. Il -p opzione per il storia comando integrato
può essere utilizzato per vedere cosa farà un'espansione della storia prima di usarla. -s opzione per il
storia builtin può essere utilizzato per aggiungere comandi alla fine dell'elenco della cronologia senza
effettivamente eseguirli, in modo che siano disponibili per un successivo richiamo.

La shell consente il controllo dei vari caratteri utilizzati dal meccanismo di espansione della cronologia
(vedi la descrizione di Histchar sopra sotto Conchiglia Variabili). La shell utilizza il
carattere di commento cronologico per contrassegnare i timestamp cronologici durante la scrittura del file cronologico.

Evento designatori
Un designatore di evento è un riferimento a una voce della riga di comando nell'elenco della cronologia. A meno che
il riferimento è assoluto, gli eventi sono relativi alla posizione corrente nella cronologia
elenco.

! Avvia una sostituzione della cronologia, tranne quando seguita da un vuoto, nuova riga, carrello
ritorno, = o ( (quando il extglob l'opzione shell è abilitata utilizzando negozio incorporato).
!n Fare riferimento alla riga di comando n.
!-n Fare riferimento al comando corrente meno n.
!! Fare riferimento al comando precedente. Questo è un sinonimo di `!-1'.
!stringa
Fare riferimento al comando più recente che precede la posizione corrente nell'elenco della cronologia
Iniziare con stringa.
!?stringa[?]
Fare riferimento al comando più recente che precede la posizione corrente nell'elenco della cronologia
contenente stringaIl finale ? può essere omesso se stringa è seguito immediatamente
con una nuova riga.
^string1^string2^
Sostituzione rapida. Ripeti il ​​comando precedente, sostituendo string1 con string2.
Equivalente a ``!!:s/string1/string2/'' (Vedere modificatori sotto).
!# L'intera riga di comando digitata finora.

Word designatori
I designatori di parole vengono utilizzati per selezionare le parole desiderate dall'evento. A : separa l'evento
specificazione dalla parola designatore. Può essere omessa se la parola designatore inizia
con una ^, $, *, -, o %Le parole sono numerate dall'inizio della riga, con la
la prima parola è indicata da 0 (zero). Le parole vengono inserite nella riga corrente separate
tramite spazi singoli.

0 (zero)
La parola zero. Per la shell, questa è la parola di comando.
n . nparola.
^ Il primo argomento. Cioè la parola 1.
$ L'ultima parola. Di solito è l'ultimo argomento, ma si espande fino alla parola zero.
parola se nella riga è presente una sola parola.
% La parola corrispondente al `? più recente.stringa?' ricerca.
x-y Una serie di parole; `-y' abbrevia `0-y'.
* Tutte le parole tranne la zero. Questo è un sinonimo di `1- $'. Non è un errore
usare * se c'è una sola parola nell'evento; la stringa vuota viene restituita in
questo caso.
x* Abbreviazioni x-$.
x- Abbreviazioni x-$ piace x*, ma omette l'ultima parola.

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

modificatori
Dopo il designatore di parola facoltativo, può apparire una sequenza di uno o più dei
seguenti modificatori, ciascuno preceduto da `:'.

h Rimuovere un componente del nome file finale, lasciando solo la testa.
t Rimuovere tutti i componenti iniziali del nome file, lasciando la coda.
r Rimuovere un suffisso finale del tipo . Xxx, lasciando il nome base.
e Rimuovere tutto tranne il suffisso finale.
p Stampa il nuovo comando ma non eseguirlo.
q Citare le parole sostituite, evitando ulteriori sostituzioni.
x Citare le parole sostituite come con q, ma si scompongono in parole a spazi vuoti e nuove righe.
s/vecchio/nuovi/
Sostituire nuovi per la prima occorrenza di vecchio nella riga dell'evento. Qualsiasi delimitatore
può essere utilizzato al posto di /. Il delimitatore finale è facoltativo se è l'ultimo
carattere della riga dell'evento. Il delimitatore può essere racchiuso tra virgolette vecchio e nuovi con una
barra rovesciata singola. Se & appare in nuovi, è sostituito da vecchioUna singola barra rovesciata
citerò il &. Se vecchio è nullo, è impostato sull'ultimo vecchio sostituito, o, se no
sono avvenute sostituzioni nella storia precedente, l'ultima stringa in un !?stringa[?]
ricerca.
& Ripetere la sostituzione precedente.
g Causa modifiche da applicare all'intera linea di eventi. Questo viene utilizzato in
congiunzione con `:s' (ad esempio, `:gs/vecchio/nuovi/') o `:&'. Se utilizzato con `:s', Qualunque
Il delimitatore può essere utilizzato al posto di /, e il delimitatore finale è facoltativo se è
l'ultimo carattere della riga dell'evento. Un a può essere usato come sinonimo di g.
G Applicare quanto segue `s' modificatore una volta per ogni parola nella riga dell'evento.

SHELL COSTRUZIONE COMANDI


Salvo diversa indicazione, ogni comando incorporato documentato in questa sezione accetta
opzioni precedute da - accetta -- per segnalare la fine delle opzioni. Il :, vero, falso,
e test i builtin non accettano opzioni e non trattano -- in particolare. Il exit, il logout,
rompere, continua, lasciaree spostamento i builtin accettano ed elaborano argomenti che iniziano con -
senza richiedere --Altri built-in che accettano argomenti ma non sono specificati come
le opzioni di accettazione interpretano gli argomenti che iniziano con - come opzioni non valide e richiedono --
per impedire questa interpretazione.
: [argomenti]
Nessun effetto; il comando non fa altro che espandere argomenti e l'esecuzione di qualsiasi
reindirizzamenti specificati. Viene restituito un codice di uscita zero.

. Nome del file [argomenti]
source Nome del file [argomenti]
Leggere ed eseguire comandi da Nome del file nell'ambiente shell corrente e restituire
lo stato di uscita dell'ultimo comando eseguito da Nome del file. Se Nome del file non
contengono una barra, nomi di file in PERCORSO vengono utilizzati per trovare la directory contenente
Nome del fileIl file cercato in PERCORSO non deve essere eseguibile. Quando bash non è
in posix modo, la directory corrente viene cercata se non viene trovato alcun file in PERCORSO. Se
, il percorso sorgente opzione per il negozio il comando builtin è disattivato, il PERCORSO non è
cercato. Se presente argomenti vengono forniti, diventano i parametri posizionali
quando Nome del file viene eseguito. Altrimenti i parametri posizionali rimangono invariati. Il
return status è lo stato dell'ultimo comando terminato nello script (0 se non c'è
vengono eseguiti i comandi) e falso se Nome del file non è stato trovato o non può essere letto.

alias [-p] [Nome[=APPREZZIAMO] ...]
Alias senza argomenti o con il -p opzione stampa l'elenco degli alias in
modulo alias Nome=APPREZZIAMO sull'output standard. Quando vengono forniti argomenti, viene creato un alias
definito per ciascuno Nome di chi APPREZZIAMO è dato. Uno spazio finale in APPREZZIAMO causa il
parola successiva da controllare per la sostituzione dell'alias quando l'alias viene espanso. Per
ogni Nome nell'elenco degli argomenti per i quali no APPREZZIAMO viene fornito il nome e il valore
dell'alias viene stampato. Alias restituisce true a meno che un Nome è dato per il quale no
è stato definito un alias.

bg [specifiche di lavoro ...]
Riprendi ogni lavoro sospeso specifiche di lavoro sullo sfondo, come se fosse stato avviato con
&. Se specifiche di lavoro non è presente, la nozione del guscio del corrente lavoro viene utilizzato. bg
specifiche di lavoro restituisce 0 a meno che non venga eseguito quando il controllo del lavoro è disabilitato o quando viene eseguito con il lavoro
controllo abilitato, qualsiasi specificato specifiche di lavoro non è stato trovato o è stato avviato senza lavoro
controllare.

legare [-m mappa dei tasti] [-lpsvPSVX]
legare [-m mappa dei tasti] [-q funzione] [-u funzione] [-r sequenza di tasti]
legare [-m mappa dei tasti] -f Nome del file
legare [-m mappa dei tasti] -x sequenza di tasti:comando shell
legare [-m mappa dei tasti] sequenza di tasti:nome-funzione
legare comando readline
Mostra corrente readline associazioni di tasti e funzioni, associa una sequenza di tasti a un
readline funzione o macro, oppure imposta una readline variabile. Ogni argomento non opzionale
è un comando come apparirebbe in .inputrc, ma ogni legame o comando deve essere
passato come argomento separato; ad esempio, '"\Cx\Cr": re-read-init-file'. Opzioni, se
forniti, hanno i seguenti significati:
-m mappa dei tasti
Usa il mappa dei tasti come la mappa dei tasti su cui verranno applicati i successivi binding.
Accettabile mappa dei tasti i nomi sono emacs, emacs-standard, emacs-meta, emacs-ctlx,
vi, vi-mossa, comando vie vi-inserire. vi è equivalente comando vi;
emacs è equivalente emacs-standard.
-l Elenca i nomi di tutti readline funzioni.
-p Display readline nomi di funzione e associazioni in modo tale che possano essere
rileggere.
-P Elenco corrente readline nomi e associazioni delle funzioni.
-s Display readline sequenze di tasti associate alle macro e alle stringhe che producono
in modo tale che possano essere riletti.
-S Display readline sequenze di tasti associate alle macro e alle stringhe che esse generano.
-v Display readline nomi e valori delle variabili in modo tale che possano essere
rileggere.
-V Elenco corrente readline nomi e valori delle variabili.
-f Nome del file
Leggi le associazioni dei tasti da Nome del file.
-q funzione
Query su quali chiavi richiamano il nome funzione.
-u funzione
Scollega tutte le chiavi associate al nome funzione.
-r sequenza di tasti
Rimuovi qualsiasi associazione corrente per sequenza di tasti.
-x sequenza di tasti:comando shell
Causare comando shell da eseguire ogniqualvolta sequenza di tasti è inserito. Quando
comando shell viene eseguito, la shell imposta il LEGGI LINEA_LINEA variabile al
contenuto del readline buffer di linea e il READLINE_POINT variabile al
posizione corrente del punto di inserimento. Se il comando eseguito cambia
il valore di LEGGI LINEA_LINEA or READLINE_POINT, quei nuovi valori saranno
riflesso nello stato di modifica.
-X Elenca tutte le sequenze di tasti associate ai comandi shell e ai comandi associati
in un formato che può essere riutilizzato come input.

Il valore restituito è 0, a meno che non venga specificata un'opzione non riconosciuta o non si verifichi un errore.

rompere [n]
Uscita dall'interno di un da, while, fino a quando, o select ciclo. Se n è specificato, pausa n
livelli. n deve essere ≥ 1. Se n è maggiore del numero di cicli racchiusi, tutti
i cicli racchiusi vengono terminati. Il valore di ritorno è 0 a meno che n non è maggiore o
uguale a 1.

incorporato shell-builtin [argomenti]
Esegue la shell builtin specificata, passandola argomentie restituire la sua uscita
stato. Questo è utile quando si definisce una funzione il cui nome è lo stesso di una shell
builtin, mantenendo la funzionalità del builtin all'interno della funzione. Il cd
builtin viene comunemente ridefinito in questo modo. Lo stato di ritorno è falso se
shell-builtin non è un comando incorporato nella shell.

visitatore [espr]
Restituisce il contesto di qualsiasi chiamata di subroutine attiva (una funzione shell o uno script
eseguito con il . or source builtins). Senza espr, visitatore visualizza la linea
numero e nome del file sorgente della chiamata di subroutine corrente. Se non negativo
l'intero è fornito come espr, visitatore visualizza il numero di riga, il nome della subroutine e
file sorgente corrispondente a quella posizione nello stack delle chiamate di esecuzione corrente.
Queste informazioni aggiuntive possono essere utilizzate, ad esempio, per stampare una traccia dello stack.
il frame corrente è il frame 0. Il valore di ritorno è 0 a meno che la shell non sia in esecuzione
una chiamata di subroutine o espr non corrisponde a una posizione valida nella chiamata
pila.

cd [-L|[-P [-e]] [-@]] [dir]
Cambia la directory corrente in dir. Se dir non viene fornito, il valore del HOME
La variabile shell è quella predefinita. Qualsiasi argomento aggiuntivo che segue dir sono ignorati
La variabile CDPATH definisce il percorso di ricerca per la directory contenente dir: ogni
nome della directory in CDPATH è ricercato dirNomi di directory alternativi in
CDPATH sono separati da due punti (:). Un nome di directory nullo in CDPATH è la stessa
come directory corrente, ovvero ``.''. Se dir inizia con una barra (/), quindi CDPATH
non viene utilizzato. Il -P cause di opzione cd per utilizzare la struttura fisica delle directory tramite
risoluzione dei collegamenti simbolici durante l'attraversamento dir e prima di elaborare le istanze di ..
in dir (vedi anche il -P opzione per il set comando incorporato); il -L forze di opzione
collegamenti simbolici da seguire risolvendo il collegamento dopo l'elaborazione delle istanze di
.. in dir. Se .. appare in dir, viene elaborato rimuovendo immediatamente
componente del percorso precedente da dir, torna a una barra o all'inizio di dir. Se
, il -e l'opzione è fornita con -Pe la directory di lavoro corrente non può essere
determinato con successo dopo una modifica di directory riuscita, cd restituirà un
stato non riuscito. Sui sistemi che lo supportano, il -@ l'opzione presenta il
attributi estesi associati a un file come directory. Un argomento di - is
convertito in $OLDPWD prima che venga tentato il cambio di directory. Se non è vuoto
nome della directory da CDPATH viene utilizzato, o se - è il primo argomento, e il
il cambio di directory è riuscito, il percorso assoluto della nuova directory di lavoro
viene scritto sull'output standard. Il valore restituito è true se la directory è stata
modificato con successo; altrimenti falso.

command [-pVv] command [arg ...]
Correre command con args sopprimendo la normale ricerca delle funzioni shell. Solo builtin
comandi o comandi trovati nel PERCORSO vengono eseguiti. Se il -p l'opzione è data,
la ricerca di command viene eseguito utilizzando un valore predefinito per PERCORSO cioè
garantito per trovare tutte le utilità standard. Se uno dei due -V or -v opzione è
fornito, una descrizione di command è stampato. Il -v l'opzione causa una singola parola
indicando il comando o il nome del file utilizzato per richiamare command da visualizzare; il -V
L'opzione produce una descrizione più dettagliata. Se l'opzione -V or -v l'opzione è fornita,
lo stato di uscita è 0 se command è stato trovato, e 1 in caso contrario. Se nessuna delle due opzioni è
fornito e si è verificato un errore o command non può essere trovato, lo stato di uscita è 127.
Altrimenti, lo stato di uscita del command builtin è lo stato di uscita di command.

compgen [opzione] [parola]
Genera possibili corrispondenze di completamento per parola secondo l' opziones, che può
essere qualsiasi opzione accettata dal completamento di una incorporato con l'eccezione di -p e -re
scrivere le corrispondenze sull'output standard. Quando si utilizza il -F or -C opzioni, il
varie variabili shell impostate dalle strutture di completamento programmabili, mentre
disponibile, non avrà valori utili.

Le corrispondenze saranno generate nello stesso modo in cui verrebbe generato il completamento programmabile
il codice li aveva generati direttamente da una specifica di completamento con lo stesso
bandiere. Se parola è specificato, solo quei completamenti corrispondenti parola sarà
visualizzato.

Il valore restituito è vero a meno che non venga fornita un'opzione non valida o non ci siano corrispondenze
generato.

completamento di una [-abcdefgjksuv] [-o opzione comp] [-DE] [-A azione] [-G globpat] [-W lista di parole] [-F
funzione] [-C command]
[-X filterpat] [-P prefisso] [-S suffisso] Nome [Nome ...]
completamento di una -pr [-DE] [Nome ...]
Specificare come argomenti per ciascuno Nome dovrebbe essere completato. Se il -p opzione è
fornito, o se non vengono fornite opzioni, le specifiche di completamento esistenti sono
stampati in modo da consentirne il riutilizzo come input. -r l'opzione rimuove un
specifiche di completamento per ogni Nome, o, se no Nomesono forniti, tutti
specifiche di completamento. Il -D opzione indica che le opzioni rimanenti e
le azioni dovrebbero applicarsi al completamento del comando ``predefinito''; ovvero, il completamento
tentato su un comando per il quale non è stato precedentemente definito alcun completamento. Il -E
l'opzione indica che le opzioni e le azioni rimanenti devono essere applicate a ``vuoto''
completamento del comando; ovvero, tentativo di completamento su una riga vuota.

Il processo di applicazione di queste specifiche di completamento quando il completamento delle parole è
tentato è descritto sopra sotto Programmabile Completamento.

Altre opzioni, se specificate, hanno i seguenti significati. Gli argomenti per l' -G,
-We -X opzioni (e, se necessario, il -P e -S opzioni) dovrebbero essere citate a
proteggerli dall'espansione prima del completamento di una viene richiamato builtin.
-o opzione comp
. opzione comp controlla diversi aspetti del comportamento del compspec oltre
la semplice generazione di completamenti. opzione comp potrebbe essere uno di:
bashdefault
Esegui il resto dell'impostazione predefinita bash completamenti se il compspec
non genera corrispondenze.
difetto Utilizzare il completamento predefinito del nome file di readline se compspec
non genera corrispondenze.
nomi di battesimo
Eseguire il completamento del nome della directory se il compspec non genera alcun
partite.
i nomi dei file
Indica a readline che compspec genera nomi di file, così può
eseguire qualsiasi elaborazione specifica del nome del file (come l'aggiunta di una barra a
nomi di directory, virgolette di caratteri speciali o soppressione
spazi finali). Destinato all'uso con le funzioni shell.
nessuna citazione Indica a readline di non citare le parole completate se sono
nomi dei file (l'impostazione predefinita è quella di virgolette per i nomi dei file).
nessuno spazio Indica a readline di non aggiungere uno spazio (impostazione predefinita) alle parole
completato alla fine della linea.
più directory
Dopo che sono state generate tutte le corrispondenze definite da compspec, directory
viene tentato il completamento del nome e tutte le corrispondenze vengono aggiunte al
risultati delle altre azioni.
-A azione
. azione potrebbe essere uno dei seguenti per generare un elenco di possibili
completamenti:
alias Nomi alias. Possono anche essere specificati come -a.
arrayvar
Nomi delle variabili array.
rilegatura Readline nomi delle associazioni di tasti.
incorporato Nomi dei comandi predefiniti della shell. Possono anche essere specificati come -b.
command Nomi dei comandi. Possono anche essere specificati come -c.
elenco
Nomi delle directory. Possono anche essere specificati come -d.
disabile
Nomi dei comandi incorporati della shell disabilitati.
abilitato Nomi dei comandi shell abilitati.
export Nomi delle variabili shell esportate. Possono anche essere specificati come -e.
filetto Nomi dei file. Possono anche essere specificati come -f.
funzione
Nomi delle funzioni shell.
gruppo Nomi di gruppo. Possono anche essere specificati come -g.
argomento di aiuto
Argomenti della guida accettati dal Aiuto incorporato.
hostname
Nomi host, come presi dal file specificato da FILE HOST conchiglia
variabile.
lavoro Nomi dei lavori, se il controllo dei lavori è attivo. Possono anche essere specificati come -j.
parola chiave Parole riservate della shell. Possono anche essere specificate come -k.
running Nomi dei lavori in esecuzione, se il controllo dei lavori è attivo.
INSTALLAZIONE Nomi di servizio. Possono anche essere specificati come -s.
impostare Argomenti validi per il -o opzione per il set incorporato.
negozio Nomi delle opzioni della shell accettati da negozio incorporato.
segnale Nomi dei segnali.
fermato Nomi dei lavori interrotti, se il controllo dei lavori è attivo.
Utente Nomi utente. Possono anche essere specificati come -u.
variabile
Nomi di tutte le variabili shell. Possono anche essere specificati come -v.
-C command
command viene eseguito in un ambiente subshell e il suo output viene utilizzato come
i possibili completamenti.
-F funzione
La funzione shell funzione viene eseguito nell'ambiente shell corrente.
Quando la funzione viene eseguita, il primo argomento ($1) è il nome del
comando i cui argomenti vengono completati, il secondo argomento ($2) è
la parola viene completata, e il terzo argomento ($3) è la parola che precede
la parola viene completata sulla riga di comando corrente. Quando termina,
i possibili completamenti vengono recuperati dal valore del COMPRENDI
variabile array.
-G globpat
Il modello di espansione del percorso globpat viene espanso per generare il possibile
completamenti.
-P prefisso
prefisso viene aggiunto all'inizio di ogni possibile completamento dopo tutto
sono state applicate altre opzioni.
-S suffisso
suffisso viene aggiunto a ogni possibile completamento dopo che tutte le altre opzioni sono state
è stato applicato.
-W lista di parole
. lista di parole è diviso utilizzando i caratteri nel IFS variabile speciale come
delimitatori e ogni parola risultante viene espansa. I possibili completamenti
sono i membri dell'elenco risultante che corrispondono alla parola che si sta completando.
-X filterpat
filterpat è un modello utilizzato per l'espansione del percorso. Viene applicato a
l'elenco dei possibili completamenti generati dalle opzioni precedenti e
argomenti e ogni completamento corrispondente filterpat viene rimosso dall'elenco.
Un leader ! in filterpat nega il modello; in questo caso, qualsiasi completamento
non corrispondente filterpat è rimosso.

Il valore restituito è true a meno che non venga fornita un'opzione non valida, un'opzione diversa da
-p or -r viene fornito senza un Nome argomento, si tenta di rimuovere un
specifica di completamento per un Nome per il quale non esiste alcuna specifica o un errore
si verifica aggiungendo una specifica di completamento.

composto [-o opzione] [-DE] [+o opzione] [Nome]
Modificare le opzioni di completamento per ciascuna Nome secondo l' opziones, o per il
completamento in esecuzione se no Nomevengono forniti. Se non opzionesono dati,
visualizzare le opzioni di completamento per ciascuna Nome o il completamento attuale. Il
possibili valori di opzione sono quelli validi per il completamento di una incorporato descritto sopra.
. -D l'opzione indica che le opzioni rimanenti dovrebbero essere applicate a ``default''
completamento del comando; ovvero, tentativo di completamento di un comando per il quale non è stato possibile
il completamento è stato precedentemente definito. Il -E l'opzione indica che il restante
le opzioni dovrebbero applicarsi al completamento del comando ``vuoto''; cioè, al completamento tentato
su una riga vuota.

Il valore restituito è true a meno che non venga fornita un'opzione non valida, viene effettuato un tentativo
per modificare le opzioni per un Nome per i quali non esiste alcuna specifica di completamento, o
si verifica un errore di output.

continua [n]
Riprendi la prossima iterazione dell'operazione di chiusura da, while, fino a quando, o select ciclo. Se n
è specificato, riprendere al nil ciclo di chiusura. n deve essere ≥ 1. Se n è più grande
rispetto al numero di cicli di chiusura, l'ultimo ciclo di chiusura (il ``livello superiore''
loop) viene ripreso. Il valore di ritorno è 0 a meno che n non è maggiore o uguale a
1.

dichiarare [-aAfFgilnrtux] [-p] [Nome[=APPREZZIAMO] ...]
comporre [-aAfFgilnrtux] [-p] [Nome[=APPREZZIAMO] ...]
Dichiarare le variabili e/o assegnare loro attributi. In caso contrario Nomevengono forniti quindi visualizzati
i valori delle variabili. Il -p l'opzione visualizzerà gli attributi e i valori di
ogni Nome. Quando -p è usato con Nome argomenti, opzioni aggiuntive, diverse da -f
e -F, vengono ignorati. Quando -p viene fornito senza Nome argomenti, verrà visualizzato
gli attributi e i valori di tutte le variabili aventi gli attributi specificati dall'
opzioni aggiuntive. Se non vengono fornite altre opzioni con -p, dichiarare verrà visualizzato
gli attributi e i valori di tutte le variabili shell. -f l'opzione limiterà il
visualizzare le funzioni della shell. Il -F l'opzione inibisce la visualizzazione della funzione
definizioni; vengono stampati solo il nome della funzione e gli attributi. Se il debug esteso
l'opzione shell è abilitata utilizzando negozio, il nome del file sorgente e il numero di riga in cui si trova
la funzione è definita vengono visualizzati anche. -F opzione implica -f. -g
l'opzione forza la creazione o la modifica delle variabili nell'ambito globale, anche quando
dichiarare viene eseguito in una funzione shell. Viene ignorato in tutti gli altri casi. Il
le seguenti opzioni possono essere utilizzate per limitare l'output alle variabili con il valore specificato
attributo o per dare attributi alle variabili:
-a Ogni Nome è una variabile array indicizzata (vedere Array sopra).
-A Ogni Nome è una variabile array associativa (vedere Array sopra).
-f Utilizzare solo nomi di funzione.
-i La variabile viene trattata come un intero; valutazione aritmetica (vedere ARITMETICA
VALUTAZIONE sopra) viene eseguito quando alla variabile viene assegnato un valore.
-l Quando alla variabile viene assegnato un valore, tutti i caratteri maiuscoli vengono
convertito in minuscolo. L'attributo maiuscolo è disabilitato.
-n Dai a ciascuno Nome , il nameref attributo, rendendolo un riferimento di nome a un altro
variabile. Quell'altra variabile è definita dal valore di Nome. Tutti
riferimenti e incarichi a Nome, fatta eccezione per la modifica del -n attributo
stesso, vengono eseguiti sulla variabile a cui fa riferimento Nomeil valore di . Il -n
l'attributo non può essere applicato alle variabili array.
-r Make Nomes di sola lettura. A questi nomi non possono quindi essere assegnati valori da
successive istruzioni di assegnazione o non impostate.
-t Dai a ciascuno Nome , il tracciare attributo. Le funzioni tracciate ereditano l' DEBUG e
RITORNO trappole dalla shell chiamante. L'attributo trace non ha alcuna caratteristica speciale
significato delle variabili.
-u Quando alla variabile viene assegnato un valore, tutti i caratteri minuscoli vengono
convertito in maiuscolo. L'attributo minuscolo è disabilitato.
-x Mark Nomes per l'esportazione ai comandi successivi tramite l'ambiente.

Utilizzando `+' invece di `-' si disattiva l'attributo, con le eccezioni che
+a non può essere utilizzato per distruggere una variabile array e +r non rimuoverà la sola lettura
attributo. Quando utilizzato in una funzione, dichiarare e comporre fare ciascuno Nome locale, come
con la locale comando, a meno che il -g viene fornita l'opzione. Se un nome di variabile è
seguito da =APPREZZIAMO, il valore della variabile è impostato su APPREZZIAMO. Quando si usa -a or -A
e la sintassi di assegnazione composta per creare variabili array, attributi aggiuntivi
non hanno effetto fino alle assegnazioni successive. Il valore restituito è 0 a meno che non venga specificato un
viene rilevata un'opzione non valida, si tenta di definire una funzione utilizzando ``-f
foo=bar'', viene effettuato un tentativo di assegnare un valore a una variabile di sola lettura, un tentativo
è fatto per assegnare un valore a una variabile array senza usare il composto
sintassi di assegnazione (vedere Array sopra), uno dei nomi non è una shell valida
nome della variabile, viene effettuato un tentativo di disattivare lo stato di sola lettura per una variabile di sola lettura
variabile, viene effettuato un tentativo di disattivare lo stato dell'array per una variabile array o un
si tenta di visualizzare una funzione inesistente con -f.

dirs [-clpv] [+n] [-n]
Senza opzioni, visualizza l'elenco delle directory attualmente ricordate.
la visualizzazione predefinita è su una singola riga con i nomi delle directory separati da spazi.
Le directory vengono aggiunte all'elenco con pushd comando; il popd comando rimuove
voci dall'elenco.
-c Cancella lo stack della directory eliminando tutte le voci.
-l Produce un elenco utilizzando i percorsi completi; il formato di elenco predefinito utilizza un
tilde per indicare la directory home.
-p Stampa lo stack delle directory con una voce per riga.
-v Stampa lo stack delle directory con una voce per riga, anteponendo a ciascuna voce
il suo indice nello stack.
+n Visualizza il nesima voce contando da sinistra dell'elenco mostrato da dirs quando
richiamato senza opzioni, partendo da zero.
-n Visualizza il nesima voce contando da destra dell'elenco mostrato da dirs
se richiamato senza opzioni, iniziando da zero.

Il valore restituito è 0 a meno che non venga fornita un'opzione non valida o n indici oltre il
fine dello stack delle directory.

rinnegare [-ar] [-h] [specifiche di lavoro ...]
Senza opzioni, rimuovi ciascuna specifiche di lavoro dalla tabella dei lavori attivi. Se specifiche di lavoro is
non presente, e nemmeno il -a né l' -r è fornita l'opzione, il corrente lavoro is
utilizzato. Se il -h è data l'opzione, ciascuna specifiche di lavoro non viene rimosso dalla tabella, ma
è contrassegnato in modo che SIGILLO non viene inviato al lavoro se la shell riceve un SIGILLO. Se
no specifiche di lavoro è fornito, il -a opzione significa rimuovere o contrassegnare tutti i lavori; l' -r
opzione senza a specifiche di lavoro l'argomento limita l'operazione ai lavori in esecuzione. Il ritorno
il valore è 0 a meno che un specifiche di lavoro non specifica un lavoro valido.

eco [-nata] [arg ...]
Uscita il args, separati da spazi, seguiti da una nuova riga. Lo stato di ritorno è
0 a meno che non si verifichi un errore di scrittura. Se -n è specificato, la nuova riga finale è
soppresso. Se il -e è data l'opzione, interpretazione della seguente barra rovesciata-
caratteri di escape è abilitato. Il -E l'opzione disabilita l'interpretazione di questi
caratteri di escape, anche su sistemi in cui vengono interpretati per impostazione predefinita.
xpg_echo l'opzione shell può essere utilizzata per determinare dinamicamente se o meno eco
espande questi caratteri di escape per impostazione predefinita. eco non interpreta -- per significare il
fine delle opzioni. eco interpreta le seguenti sequenze di escape:
\a avviso (campanello)
\b backspace
\c sopprimere ulteriore output
\e
\E un personaggio di fuga
\f feed di moduli
\n nuova linea
\r ritorno a capo
\t tab orizzontale
\v tab verticale
\\ backslash
\0nnn il carattere a otto bit il cui valore è il valore ottale nnn (da zero a tre
cifre ottali)
\xHH il carattere a otto bit il cui valore è il valore esadecimale HH (uno o due
cifre esadecimali)
\uHhhh il carattere Unicode (ISO/IEC 10646) il cui valore è il valore esadecimale
Hhhh (da una a quattro cifre esadecimali)
\UHHHHHHH
il carattere Unicode (ISO/IEC 10646) il cui valore è il valore esadecimale
HHHHHHH (da una a otto cifre esadecimali)

enable [-a] [-dnps] [-f Nome del file] [Nome ...]
Abilita e disabilita i comandi shell incorporati. Disabilitare un comando incorporato consente a un disco
comando che ha lo stesso nome di un comando incorporato nella shell da eseguire senza
specificando un percorso completo, anche se la shell normalmente cerca i builtin
prima dei comandi del disco. Se -n viene utilizzato, ciascuno Nome è disabilitato; altrimenti, nomi sono
abilitato. Ad esempio, per utilizzare il test binario trovato tramite il PERCORSO invece del
versione integrata della shell, eseguire ``enable -n test''. Il -f opzione significa caricare il nuovo
comando integrato Nome da oggetto condiviso Nome del file, su sistemi che supportano la dinamica
caricamento. Il -d l'opzione eliminerà un builtin caricato in precedenza con -f. Se no
Nome vengono forniti argomenti, o se il -p viene fornita l'opzione, un elenco di shell builtin
viene stampato. Senza altri argomenti opzionali, l'elenco è costituito da tutte le shell abilitate
builtins. Se -n viene fornito, vengono stampati solo i builtin disabilitati. Se -a is
fornito, l'elenco stampato include tutti i builtin, con l'indicazione se o
non tutti sono abilitati. Se -s viene fornito, l'output è limitato al POSIX
la nostra speciale builtins. Il valore di ritorno è 0 a meno che un Nome non è una shell incorporata o
si è verificato un errore durante il caricamento di un nuovo builtin da un oggetto condiviso.

eval [arg ...]
. argvengono letti e concatenati insieme in un singolo comando. Questo comando è
quindi letto ed eseguito dalla shell, e il suo stato di uscita viene restituito come valore
of evalSe non ci sono args, o solo argomenti nulli, eval restituisce 0.

exec [-cl] [-a Nome] [command [argomenti]]
If command è specificato, sostituisce la shell. Non viene creato alcun nuovo processo. Il
argomenti diventano gli argomenti per command. Se il -l è fornita l'opzione, la shell
inserisce un trattino all'inizio dell'argomento zero passato a command. Questo è
che cosa accesso(1) lo fa. Il -c cause di opzione command da eseguire con un vuoto
ambiente. Se -a viene fornito, il guscio passa Nome come argomento zero per
il comando eseguito. Se command non può essere eseguito per qualche motivo, un non-
la shell interattiva esce, a meno che il errore esecutivo l'opzione shell è abilitata. In questo
caso, restituisce un errore. Una shell interattiva restituisce un errore se il file non può
essere eseguito. Se command non è specificato, eventuali reindirizzamenti hanno effetto nel
shell corrente e lo stato di ritorno è 0. Se si verifica un errore di reindirizzamento,
lo stato di ritorno è 1.

exit [n]
Fa sì che la shell esca con uno stato di n. Se n viene omesso, lo stato di uscita è
quello dell'ultimo comando eseguito. Una trappola su EXIT viene eseguito prima della shell
termina.

export [-fn] [Nome[=parola]]...
export -p
Il fornito nomi sono contrassegnati per l'esportazione automatica nell'ambiente di
comandi eseguiti successivamente. Se il -f l'opzione è data, il nomi fare riferimento a
funzioni. Se no nomi sono dati, o se il -p viene fornita l'opzione, un elenco di nomi
di tutte le variabili esportate viene stampato. Il -n l'opzione fa sì che la proprietà di esportazione venga
essere rimosso da ciascuno NomeSe il nome di una variabile è seguito da =parola, il valore di
la variabile è impostata su parola. export restituisce uno stato di uscita pari a 0 a meno che non sia un valore non valido
viene incontrata un'opzione, una delle nomi non è un nome di variabile shell valido, oppure -f
è fornito con un Nome questa non è una funzione.

fc [-e nome] [-lnr] [prima di tutto] [ultimo]
fc -s [colpetto=rep] [cmd]
Il primo modulo seleziona un intervallo di comandi da prima di tutto a ultimo dall'elenco della cronologia
e li visualizza o li modifica e li riesegue. Nome e ultimo può essere specificato come un
stringa (per individuare l'ultimo comando che inizia con quella stringa) o come numero (un
indice nell'elenco cronologico, dove un numero negativo viene utilizzato come offset dal
numero di comando corrente). Se ultimo non è specificato, è impostato sul comando corrente
per l'elenco (in modo che ``fc -l -10'' stampi gli ultimi 10 comandi) e per prima di tutto
altrimenti. Se prima di tutto non è specificato, viene impostato sul comando precedente per la modifica
e -16 per l'elenco.

. -n l'opzione sopprime i numeri dei comandi durante l'elenco. L' -r l'opzione si inverte
l'ordine dei comandi. Se il -l viene data l'opzione, i comandi vengono elencati su
output standard. Altrimenti, l'editor fornito da nome viene richiamato su un file
contenente quei comandi. Se nome non è dato, il valore del FCEDIT variabile
viene utilizzato e il valore di EDITOR if FCEDIT non è impostato. Se nessuna delle variabili è impostata,
vi viene utilizzato. Una volta completata la modifica, i comandi modificati vengono ripetuti ed eseguiti.

Nella seconda forma, command viene rieseguito dopo ogni istanza di colpetto è sostituito
by rep. Comando è interpretato allo stesso modo di prima di tutto sopra. Un alias utile da usare con
questo è ``r="fc -s"'', quindi digitando ``r cc'' viene eseguito l'ultimo comando che inizia con
``cc'' e digitando ``r'' si riesegue l'ultimo comando.

Se viene utilizzata la prima forma, il valore restituito è 0 a meno che non venga specificata un'opzione non valida.
incontrato o prima di tutto or ultimo specificare le linee della cronologia fuori intervallo. Se il -e opzione
viene fornito, il valore di ritorno è il valore dell'ultimo comando eseguito o errore
se si verifica un errore con il file temporaneo dei comandi. Se la seconda forma è
utilizzato, lo stato di ritorno è quello del comando rieseguito, a meno che cmd non
specificare una riga di cronologia valida, nel qual caso fc restituisce un errore.

fg [specifiche di lavoro]
CV specifiche di lavoro in primo piano e rendilo il lavoro corrente. Se specifiche di lavoro non è
presente, la nozione del guscio del corrente lavoro viene utilizzato. Il valore restituito è quello
del comando messo in primo piano, o fallimento se eseguito quando il controllo del lavoro è
disabilitato o, quando eseguito con il controllo del lavoro abilitato, se specifiche di lavoro non specifica un valido
lavoro o specifiche di lavoro specifica un lavoro avviato senza controllo del lavoro.

getopts opstring Nome [args]
getopts viene utilizzato dalle procedure shell per analizzare i parametri posizionali. opstring
contiene i caratteri opzionali da riconoscere; se un carattere è seguito da un
due punti, ci si aspetta che l'opzione abbia un argomento, che dovrebbe essere separato da
tramite uno spazio vuoto. I caratteri due punti e punto interrogativo non possono essere utilizzati come
caratteri di opzione. Ogni volta che viene richiamato, getopts posiziona l'opzione successiva nel
variabile di shell Nome, inizializzazione Nome se non esiste, e l'indice del
argomento successivo da elaborare nella variabile OTTIMIZZA. OTTIMIZZA è inizializzato a 1
ogni volta che viene richiamata la shell o uno script di shell. Quando un'opzione richiede un
discussione, getopts inserisce quell'argomento nella variabile OPTARGIl guscio fa
non reimpostato OTTIMIZZA automaticamente; deve essere reimpostato manualmente tra più chiamate a
getopts all'interno della stessa invocazione della shell se deve essere utilizzato un nuovo set di parametri.

Quando si incontra la fine delle opzioni, getopts esce con un valore di ritorno maggiore
di zero. OTTIMIZZA è impostato sull'indice del primo argomento non opzionale e Nome
è impostato su ?.

getopts normalmente analizza i parametri posizionali, ma se vengono forniti più argomenti
in args, getopts analizza invece quelli.

getopts può segnalare errori in due modi. Se il primo carattere di opstring è un
colon, silenzioso viene utilizzata la segnalazione degli errori. Nel normale funzionamento, i messaggi diagnostici
vengono stampati quando vengono rilevate opzioni non valide o argomenti di opzione mancanti. Se
la variabile OPTERR è impostato su 0, non verranno visualizzati messaggi di errore, anche se
primo carattere di opstring non è un punto e virgola.

Se viene visualizzata un'opzione non valida, getopts posti ? in Nome e, se non è silenzioso, stampa
un messaggio di errore e annulla OPTARG. Se getopts è silenzioso, il carattere di opzione
trovato è posto in OPTARG e non viene stampato alcun messaggio diagnostico.

Se un argomento richiesto non viene trovato, e getopts non è silenzioso, un punto interrogativo (?)
è posto in Nome, OPTARG non è impostato e viene stampato un messaggio diagnostico. Se
getopts è silenzioso, poi due punti (:) è posto in Nome e OPTARG è impostato al
carattere opzionale trovato.

getopts restituisce true se viene trovata un'opzione, specificata o non specificata. Restituisce
false se si verifica la fine delle opzioni o un errore.

hash [-lr] [-p Nome del file] [-DT] [Nome]
Ogni volta hash viene richiamato il percorso completo del comando Nome è determinato da
ricerca nelle directory in $ PERCORSO e ricordato. Qualsiasi cosa ricordata in precedenza
il percorso viene scartato. Se il -p se viene fornita l'opzione, non viene eseguita alcuna ricerca del percorso,
e Nome del file viene utilizzato come nome file completo del comando. Il -r l'opzione causa il
shell per dimenticare tutte le posizioni ricordate. Il -d l'opzione fa sì che la shell dimentichi
la posizione ricordata di ciascuno Nome. Se il -t è fornita l'opzione, il pieno
percorso a cui ogni Nome corrisponde viene stampato. Se più Nome gli argomenti sono
fornito di -t, l' Nome viene stampato prima del percorso completo hash. Il -l
L'opzione fa sì che l'output venga visualizzato in un formato che può essere riutilizzato come input. Se
non vengono forniti argomenti, o se solo -l viene fornita, informazioni su ricordato
comandi viene stampato. Lo stato di ritorno è vero a meno che non venga visualizzato un Nome non è stato trovato o un
è stata fornita un'opzione non valida.

Aiuto [-dms] [modello]
Visualizza informazioni utili sui comandi incorporati. Se modello è specificato, Aiuto
fornisce un aiuto dettagliato su tutti i comandi corrispondenti modello; altrimenti aiuto per tutti i
vengono stampate le strutture di controllo builtin e shell.
-d Visualizza una breve descrizione di ciascuno modello
-m Visualizza la descrizione di ciascuno modello in un formato simile a manpage
-s Visualizza solo una breve sinossi di utilizzo per ciascuno modello

Lo stato di ritorno è 0 a meno che nessun comando corrisponda modello.

storia [n]
storia -c
storia -d offset
storia -anrw [Nome del file]
storia -p arg [arg ...]
storia -s arg [arg ...]
Senza opzioni, visualizza l'elenco della cronologia dei comandi con i numeri di riga. Righe elencate
con una * sono stati modificati. Un argomento di n elenca solo l'ultimo n linee. Se il
variabile di shell FORMATO STORICO DELL'ORA è impostato e non nullo, viene utilizzato come stringa di formato
da strftime(3) per visualizzare il timestamp associato a ciascuna cronologia visualizzata
voce. Non viene stampato alcuno spazio vuoto tra il timestamp formattato e il
linea della storia. Se Nome del file viene fornito, viene utilizzato come nome del file cronologico;
in caso contrario, il valore di ARCHIVIO viene utilizzato. Le opzioni, se fornite, hanno le seguenti caratteristiche
significati:
-c Cancellare l'elenco della cronologia eliminando tutte le voci.
-d offset
Elimina la voce della cronologia nella posizione offset.
-a Aggiungi le ``nuove'' righe della cronologia (righe della cronologia inserite dall'inizio
della corrente bash sessione) al file cronologico.
-n Leggere le righe della cronologia non ancora lette dal file della cronologia nel
elenco cronologico corrente. Queste sono le righe aggiunte al file cronologico da quando
l'inizio della corrente bash sessione.
-r Leggere il contenuto del file cronologico e aggiungerlo alla cronologia corrente
elenco.
-w Scrivere l'elenco cronologico corrente nel file cronologico, sovrascrivendo la cronologia
contenuto del file.
-p Eseguire la sostituzione della cronologia su quanto segue args e visualizza il risultato su
l'output standard. Non memorizza i risultati nell'elenco cronologico. Ogni
arg devono essere citati per disattivare la normale espansione della cronologia.
-s Memorizza il file args nell'elenco cronologico come una singola voce. L'ultimo comando in
l'elenco cronologico viene rimosso prima del args sono aggiunti.

Se l' FORMATO STORICO DELL'ORA variabile è impostata, le informazioni di timestamp associate a
ogni voce della cronologia viene scritta nel file della cronologia, contrassegnata con il commento della cronologia
carattere. Quando il file della cronologia viene letto, le righe che iniziano con il commento della cronologia
carattere seguito immediatamente da una cifra vengono interpretati come timestamp per il
riga della cronologia precedente. Il valore restituito è 0 a meno che non venga specificata un'opzione non valida
riscontrato, si verifica un errore durante la lettura o la scrittura del file cronologico, un errore non valido
offset viene fornito come argomento a -d, o l'espansione della storia fornita come
argomento a -p non riesce.

posti di lavoro [-lnprs] [ specifiche di lavoro ...]
posti di lavoro -x command [ args ...]
Il primo modulo elenca i lavori attivi. Le opzioni hanno i seguenti significati:
-l Elenca gli ID dei processi oltre alle normali informazioni.
-n Visualizza solo le informazioni sui lavori il cui stato è cambiato da quando l'utente
è stato informato per ultimo del loro stato.
-p Elenca solo l'ID del processo del responsabile del gruppo di processi del job.
-r Visualizza solo i lavori in esecuzione.
-s Visualizza solo i lavori interrotti.

If specifiche di lavoro è dato, l'output è limitato alle informazioni su quel lavoro. Il
lo stato di ritorno è 0 a meno che non venga rilevata un'opzione non valida o un valore non valido specifiche di lavoro is
fornito.

Se l' -x l'opzione è fornita, posti di lavoro sostituisce qualsiasi specifiche di lavoro trovato in command or args
con l'ID del gruppo di processi corrispondente ed esegue command passandolo args,
restituendo il suo stato di uscita.

kill [-s sigspec | -n Signum | -sigspec] [pid | specifiche di lavoro]...
kill -l [sigspec | stato_uscita]
Invia il segnale nominato da sigspec or Signum ai processi nominati da pid or
specifiche di lavoro. sigspec è un nome di segnale non sensibile alle maiuscole/minuscole, come ad esempio SIGILLO (con o
senza il SIG prefisso) o un numero di segnale; Signum è un numero di segnale. Se sigspec
non è presente, allora TERMINE si presume. Un argomento di -l elenca i nomi dei segnali.
Se vengono forniti argomenti quando -l vengono forniti i nomi dei segnali
corrispondenti agli argomenti sono elencati e lo stato di ritorno è 0. Il
stato_uscita argomento a -l è un numero che specifica un numero di segnale o il
stato di uscita di un processo terminato da un segnale. kill restituisce true se almeno uno
il segnale è stato inviato correttamente, oppure falso se si verifica un errore o è presente un'opzione non valida
incontrato.

lasciare arg [arg ...]
Ogni arg è un'espressione aritmetica da valutare (vedi ARITMETICA VALUTAZIONE
sopra). Se l'ultimo arg valuta a 0, lasciare restituisce 1; altrimenti viene restituito 0.

locale [opzione] [Nome[=APPREZZIAMO] ...]
Per ogni argomento, una variabile locale denominata Nome viene creato e assegnato APPREZZIAMO.
opzione può essere una qualsiasi delle opzioni accettate da dichiarare. Quando locale viene utilizzato all'interno di un
funzione, fa sì che la variabile Nome avere un ambito visibile limitato a quello
funzione e i suoi figli. Senza operandi, locale scrive un elenco di locali
variabili sullo standard output. È un errore usare locale quando non si è all'interno di un
funzione. Lo stato di ritorno è 0 a meno che locale viene utilizzato al di fuori di una funzione, un
invalido Nome è fornito, o Nome è una variabile di sola lettura.

il logout Esci da una shell di login.

mapfile [-n contare] [-O origine] [-s contare] [-t] [-u fd] [-C richiama] [-c quantistico] [schieramento]
readarray [-n contare] [-O origine] [-s contare] [-t] [-u fd] [-C richiama] [-c quantistico]
[schieramento]
Leggere le righe dall'input standard nella variabile array indicizzata schieramento, O da
descrittore di file fd se l' -u è fornita l'opzione. La variabile MAPFILE Europe è
difetto schieramentoLe opzioni, se fornite, hanno i seguenti significati:
-n Copia al massimo contare linee. Se contare è 0, tutte le righe vengono copiate.
-O Inizia ad assegnare a schieramento all'indice origineL'indice predefinito è 0.
-s Scarta il primo contare le linee si leggono.
-t Rimuovi una nuova riga finale da ogni riga letta.
-u Leggi le righe dal descrittore di file fd invece dell'input standard.
-C Valutare richiama ogni volta quantistico le linee vengono lette. Le -c opzione specifica
quantistico.
-c Specificare il numero di righe lette tra ogni chiamata a richiama.

If -C è specificato senza -c, il quantum predefinito è 5000. Quando richiama is
valutato, viene fornito l'indice del prossimo elemento dell'array da assegnare e
la riga da assegnare a quell'elemento come argomenti aggiuntivi. richiama is
valutato dopo la lettura della riga ma prima dell'assegnazione dell'elemento dell'array.

Se non viene fornita un'origine esplicita, mapfile cancellerà schieramento prima di assegnare
ad esso.

mapfile restituisce correttamente a meno che non venga specificata un'opzione o un argomento di opzione non valido
fornito, schieramento non è valido o non cedibile, o se schieramento non è un array indicizzato.

popd [-n] [+n] [-n]
Rimuove le voci dallo stack delle directory. Senza argomenti, rimuove la parte superiore
directory dallo stack ed esegue un cd alla nuova directory principale. Argomenti,
se forniti, hanno i seguenti significati:
-n Sopprime il normale cambio di directory quando si rimuovono le directory dal
stack, in modo che venga manipolata solo la pila.
+n Rimuove il nesima voce contando da sinistra dell'elenco mostrato da dirs,
iniziando da zero. Ad esempio: ``popd +0'' rimuove la prima directory,
``popd +1'' il secondo.
-n Rimuove il nesima voce contando da destra dell'elenco mostrato da dirs,
iniziando da zero. Ad esempio: ``popd -0'' rimuove l'ultima directory,
``popd -1'' il penultimo.

Se l' popd il comando ha esito positivo, a dirs viene eseguito anche, e il ritorno
lo stato è 0. popd restituisce false se viene rilevata un'opzione non valida, la directory
lo stack è vuoto, è specificata una voce di stack di directory inesistente o la directory
il cambiamento fallisce.

printf [-v var] formato [argomenti]
Scrivi il formato argomenti all'output standard sotto il controllo del
formato. -v l'opzione fa sì che l'output venga assegnato alla variabile var piuttosto
rispetto a quanto stampato sull'output standard.

. formato è una stringa di caratteri che contiene tre tipi di oggetti: semplici
caratteri, che vengono semplicemente copiati sull'output standard, sequenze di escape dei caratteri,
che vengono convertiti e copiati nell'output standard e nelle specifiche di formato,
ognuno dei quali provoca la stampa del successivo argomento. In aggiunta a
Standard printf(1) specifiche di formato, printf interpreta quanto segue
estensioni:
%b cause printf per espandere le sequenze di escape con barra rovesciata nel corrispondente
argomento (tranne che \c termina l'output, barre rovesciate in \', \"e \?
non vengono rimossi e le escape ottali che iniziano con \0 può contenere fino a quattro
cifre).
%q cause printf per emettere il corrispondente argomento in un formato che può essere
riutilizzato come input della shell.
%(datafmt)T
cause printf per visualizzare la stringa data-ora risultante dall'utilizzo datafmt as
una stringa di formato per strftime(3). Il corrispondente argomento è un intero
che rappresenta il numero di secondi trascorsi dall'epoca. Due argomenti speciali
possono essere utilizzati i seguenti valori: -1 rappresenta l'ora corrente e -2 rappresenta l'ora
momento in cui è stata richiamata la shell. Se non viene specificato alcun argomento, la conversione si comporta
come se fosse stato dato -1. Questa è un'eccezione al solito printf comportamento.

Gli argomenti per gli specificatori di formato non stringa vengono trattati come costanti C, ad eccezione del fatto che a
è consentito il segno più o meno iniziale e se il carattere iniziale è un singolo o
virgolette doppie, il valore è il valore ASCII del carattere seguente.

. formato viene riutilizzato secondo necessità per consumare tutto il argomenti. Se il formato
richiede di più argomenti di quelli forniti, le specifiche di formato extra si comportano
come se fosse stato fornito un valore zero o una stringa nulla, a seconda dei casi. Il ritorno
il valore è zero in caso di successo, diverso da zero in caso di fallimento.

pushd [-n] [+n] [-n]
pushd [-n] [dir]
Aggiunge una directory in cima allo stack delle directory o ruota lo stack, rendendo
la nuova cima dello stack, la directory di lavoro corrente. Senza argomenti,
scambia le prime due directory e restituisce 0, a meno che lo stack delle directory non sia
vuoto. Gli argomenti, se forniti, hanno i seguenti significati:
-n Sopprime il normale cambio di directory quando si aggiungono directory al
stack, in modo che venga manipolata solo la pila.
+n Ruota la pila in modo che il nesima directory (contando da sinistra della
elenco mostrato da dirs, iniziando da zero) è in alto.
-n Ruota la pila in modo che il nesima directory (contando da destra della
elenco mostrato da dirs, iniziando da zero) è in alto.
dir Aggiunge dir allo stack delle directory in alto, rendendolo il nuovo corrente
directory di lavoro come se fosse stata fornita come argomento al cd
incorporato.

Se l' pushd il comando ha esito positivo, a dirs viene eseguita anche. Se la prima forma
si usa, pushd restituisce 0 a meno che il cd non dir fallisce. Con la seconda forma, pushd
restituisce 0 a meno che lo stack delle directory non sia vuoto, uno stack delle directory inesistente
è specificato l'elemento, oppure la directory cambia nella nuova directory corrente specificata
la directory fallisce.

pwd [-LP]
Stampa il percorso assoluto della directory di lavoro corrente. Il percorso stampato
non contiene collegamenti simbolici se il -P l'opzione è fornita o la -o Fisico opzione
ai set il comando builtin è abilitato. Se il -L viene utilizzata l'opzione, il percorso
stampato può contenere link simbolici. Lo stato di ritorno è 0 a meno che non si verifichi un errore
durante la lettura del nome della directory corrente o viene fornita un'opzione non valida.

read [-ers] [-a un nome] [-d delim] [-i testo] [-n nchar] [-N nchar] [-p pronto] [-t
timeout] [-u fd] [Nome ...]
Una riga viene letta dall'input standard o dal descrittore del file fd in dotazione
come argomento per il -u opzione, e la prima parola viene assegnata al primo Nome,
la seconda parola alla seconda Nome, e così via, con le parole rimanenti e le loro
separatori intermedi assegnati all'ultimo NomeSe vengono lette meno parole
dal flusso di input rispetto ai nomi, ai nomi rimanenti vengono assegnati valori vuoti.
I personaggi in IFS vengono utilizzati per dividere la riga in parole utilizzando le stesse regole
la shell utilizza per l'espansione (descritta sopra sotto Word Scissione). La barra rovesciata
carattere (\) può essere utilizzato per rimuovere qualsiasi significato speciale per il carattere successivo letto
e per la continuazione di riga. Le opzioni, se fornite, hanno i seguenti significati:
-a un nome
Le parole vengono assegnate agli indici sequenziali della variabile array un nome,
a partire da 0. un nome non viene impostato prima che vengano assegnati nuovi valori. Altro
Nome gli argomenti vengono ignorati.
-d delim
Il primo personaggio di delim viene utilizzato per terminare la riga di input, piuttosto
piuttosto che una nuova riga.
-e Se l'input standard proviene da un terminale, readline (Vedi LINEA DI LETTURA
sopra) viene utilizzato per ottenere la riga. Readline utilizza l'attuale (o predefinito,
se la modifica della riga non era precedentemente attiva) modificare le impostazioni.
-i testo
If readline viene utilizzato per leggere la riga, testo viene inserito nella modifica
buffer prima di iniziare la modifica.
-n nchar
read ritorna dopo aver letto nchar personaggi piuttosto che aspettare un
riga completa di input, ma rispetta un delimitatore se inferiore a nchar
i caratteri vengono letti prima del delimitatore.
-N nchar
read ritorna dopo aver letto esattamente nchar personaggi piuttosto che aspettare
una riga completa di input, a meno che non venga rilevato EOF o read il tempo è scaduto.
I caratteri delimitatori riscontrati nell'input non vengono trattati in modo speciale e
non causare read tornare fino a nchar i caratteri vengono letti.
-p pronto
Display pronto sull'errore standard, senza una nuova riga finale, prima
tentativo di leggere qualsiasi input. Il prompt viene visualizzato solo se l'input è
proveniente da un terminale.
-r La barra rovesciata non funge da carattere di escape. La barra rovesciata è considerata
per far parte della riga. In particolare, una coppia barra rovesciata-nuova riga non può essere
utilizzato come continuazione di riga.
-s Modalità silenziosa. Se l'input proviene da un terminale, i caratteri non vengono riprodotti.
-t timeout
Causare read per scadere e restituire un errore se una riga completa di input (o una
numero specificato di caratteri) non viene letto entro timeout secondi. timeout
può essere un numero decimale con una parte frazionaria che segue la virgola
punto. Questa opzione è efficace solo se read sta leggendo l'input da un
terminale, pipe o altro file speciale; non ha effetto durante la lettura da
file regolari. Se read il tempo è scaduto, read salva qualsiasi input parziale letto in
la variabile specificata Nome. Se timeout è 0, read ritorna immediatamente,
senza tentare di leggere alcun dato. Lo stato di uscita è 0 se l'input è disponibile
sul descrittore di file specificato, altrimenti diverso da zero. Lo stato di uscita è
maggiore di 128 se il timeout viene superato.
-u fd Leggi l'input dal descrittore del file fd.

Se no nomi vengono forniti, la riga letta viene assegnata alla variabile REPLY.
il codice di ritorno è zero, a meno che non venga rilevata la fine del file, read timeout (in cui
caso in cui il codice di ritorno sia maggiore di 128), un errore di assegnazione della variabile (come
si verifica l'assegnazione a una variabile di sola lettura) oppure viene fornito un descrittore di file non valido
come argomento per -u.

in sola lettura [-aAf] [-p] [Nome[=parola] ...]
Il dato nomi sono contrassegnati come di sola lettura; i valori di questi nomi non può essere modificato
mediante assegnazione successiva. Se il -f è fornita l'opzione, le funzioni
corrispondente alla nomi sono così marcati. Il -a l'opzione limita le variabili a
array indicizzati; il -A l'opzione limita le variabili agli array associativi. Se
entrambe le opzioni sono fornite, -A ha la precedenza. Se no Nome vengono forniti argomenti, o
se l' -p viene fornita l'opzione, viene stampato un elenco di tutti i nomi di sola lettura. L'altro
le opzioni possono essere utilizzate per limitare l'output a un sottoinsieme dell'insieme di sola lettura
nomi. Il -p l'opzione fa sì che l'output venga visualizzato in un formato che può essere riutilizzato
come input. Se il nome di una variabile è seguito da =parola, il valore della variabile è
impostato parolaLo stato di ritorno è 0 a meno che non venga rilevata un'opzione non valida, una
di nomi non è un nome di variabile shell valido, oppure -f è fornito con un Nome che
non è una funzione.

ritorno [n]
Fa sì che una funzione interrompa l'esecuzione e restituisca il valore specificato da n a sua
chiamante. Se n viene omesso, lo stato di ritorno è quello dell'ultimo comando eseguito in
il corpo della funzione. Se ritorno viene utilizzato al di fuori di una funzione, ma durante l'esecuzione di una
sceneggiatura di . (source) comando, fa sì che la shell interrompa l'esecuzione di tale comando
script e restituisci entrambi n o lo stato di uscita dell'ultimo comando eseguito entro
lo script come stato di uscita dello script. Se n viene fornito, il valore di ritorno è
i suoi 8 bit meno significativi. Lo stato di ritorno è diverso da zero se ritorno è fornito
un argomento non numerico, o viene utilizzato al di fuori di una funzione e non durante l'esecuzione di una
sceneggiatura di . or source. Qualsiasi comando associato al RITORNO la trappola viene eseguita
prima che l'esecuzione riprenda dopo la funzione o lo script.

set [--abefhkmnptuvxBCEHPT] [-o nome-opzione] [arg ...]
set [+abefhkmnptuvxBCEHPT] [+o nome-opzione] [arg ...]
Senza opzioni, il nome e il valore di ogni variabile shell vengono visualizzati in un
formato che può essere riutilizzato come input per impostare o reimpostare l'impostazione corrente
variabili. Le variabili di sola lettura non possono essere reimpostate. In posix modalità, solo shell
le variabili sono elencate. L'output è ordinato in base alle impostazioni locali correnti. Quando
le opzioni sono specificate, impostano o annullano gli attributi della shell. Tutti gli argomenti rimanenti
dopo l'elaborazione delle opzioni vengono trattati come valori per i parametri posizionali e sono
assegnato, in ordine, a $1, $2, ... $nLe opzioni, se specificate, hanno le seguenti caratteristiche:
significati:
-a Contrassegna automaticamente le variabili e le funzioni che vengono modificate o create
per l'esportazione nell'ambiente dei comandi successivi.
-b Segnalare immediatamente lo stato dei processi in background terminati, anziché
prima del prompt primario successivo. Questo è efficace solo quando il controllo del lavoro è
abilitato.
-e Uscire immediatamente se un conduttura (che può consistere in un singolo semplice
command) Del stratagemma, O composto command (Vedi SHELL GRAMMATICA sopra), uscite
con uno stato diverso da zero. La shell non esce se il comando fallisce
fa parte dell'elenco dei comandi immediatamente successivo a while or fino a quando parola chiave,
parte del test successivo alla if or Elif parole riservate, parte di qualsiasi
comando eseguito in un && or || elenco eccetto il comando che segue la finale
&& or ||, qualsiasi comando in una pipeline tranne l'ultimo, o se il comando è
il valore di ritorno viene invertito con !. Se un comando composto diverso da un
la subshell restituisce uno stato diverso da zero perché un comando non è riuscito mentre -e Prima
ignorato, la shell non esce. Una trappola su ERR, se impostato, viene eseguito
prima che la shell esca. Questa opzione si applica all'ambiente shell e
ogni ambiente subshell separatamente (vedere COMANDO ESECUZIONE AMBIENTE
sopra), e può causare l'uscita delle subshell prima di eseguire tutti i comandi
nel sottoguscio.

Se un comando composto o una funzione shell viene eseguito in un contesto in cui -e is
ignorato, nessuno dei comandi eseguiti all'interno del comando composto o
la funzione del corpo sarà influenzata dal -e impostazione, anche se -e è impostato e un
Il comando restituisce uno stato di errore. Se un comando composto o una funzione shell
set -e mentre si esegue in un contesto in cui -e viene ignorato, tale impostazione verrà
non avrà alcun effetto finché il comando composto o il comando contenente
la chiamata della funzione è completata.
-f Disabilita l'espansione del nome del percorso.
-h Ricorda la posizione dei comandi mentre vengono cercati per l'esecuzione.
Questa opzione è abilitata per impostazione predefinita.
-k Tutti gli argomenti sotto forma di istruzioni di assegnazione vengono inseriti in
ambiente per un comando, non solo quelli che precedono il nome del comando.
-m Modalità monitor. Il controllo del lavoro è abilitato. Questa opzione è attiva per impostazione predefinita per
shell interattive sui sistemi che lo supportano (vedere JOB CONTROLLO soprattutto
i processi vengono eseguiti in un gruppo di processi separato. Quando un processo in background
completa, la shell stampa una riga contenente il suo stato di uscita.
-n Legge i comandi ma non li esegue. Può essere usato per controllare una shell
script per errori di sintassi. Questo viene ignorato dalle shell interattive.
-o nome-opzione
. nome-opzione può essere uno dei seguenti:
allexport
Uguale a -a.
parentesi graffa espandi
Uguale a -B.
emacs Utilizza un'interfaccia di modifica della riga di comando in stile emacs. Questa opzione è abilitata
per impostazione predefinita quando la shell è interattiva, a meno che la shell non sia
iniziato con il --nessuna modifica opzione. Ciò influisce anche sulla modifica
interfaccia utilizzata per read -e.
errore Uguale a -e.
traccia di errore
Uguale a -E.
funtrace
Uguale a -T.
hashall Uguale a -h.
espansione isterica
Uguale a -H.
storia Abilita la cronologia dei comandi, come descritto sopra in STORIA. Questo
l'opzione è attiva per impostazione predefinita nelle shell interattive.
ignorare
L'effetto è come se fosse stato digitato il comando shell ``IGNOREEOF=10''
eseguito (vedi Conchiglia Variabili sopra).
parola chiave Uguale a -k.
monitore Uguale a -m.
noclobber
Uguale a -C.
noexec Uguale a -n.
noglob Uguale a -f.
nolog Attualmente ignorato.
notificare Uguale a -b.
sostantivo Uguale a -u.
un cmd Uguale a -t.
Fisico
Uguale a -P.
guasto alla tubazione
Se impostato, il valore restituito da una pipeline è il valore dell'ultimo
(comando più a destra) per uscire con uno stato diverso da zero, o zero se tutto
i comandi nella pipeline escono correttamente. Questa opzione è
disabilitato per impostazione predefinita.
posix Cambia il comportamento di bash dove l'operazione predefinita differisce
dallo standard POSIX per corrispondere allo standard (posix modo). Vedere
VEDERE ANCHE di seguito per un riferimento a un documento che descrive in dettaglio come posix
La modalità influenza il comportamento di bash.
privilegiato
Uguale a -p.
verboso Uguale a -v.
vi Utilizzare un'interfaccia di modifica della riga di comando in stile vi. Questo influisce anche
l'interfaccia di modifica utilizzata per read -e.
xtraccia Uguale a -x.
If -o è fornito senza nome-opzione, i valori delle opzioni correnti
vengono stampati. Se +o è fornito senza nome-opzione, una serie di set
comandi per ricreare le impostazioni delle opzioni correnti vengono visualizzati su
uscita standard.
-p Accendi privilegiato modalità. In questa modalità, il $ ENV e $BASH_ENV i file sono
non elaborato, le funzioni shell non vengono ereditate dall'ambiente e
, il CONCHIGLIE, BASHOTS, CDPATHe GLOBIGNORE variabili, se compaiono
nell'ambiente, vengono ignorati. Se la shell viene avviata con
l'ID utente (gruppo) effettivo non è uguale all'ID utente (gruppo) reale e -p
se l'opzione non è fornita, queste azioni vengono eseguite e l'ID utente effettivo
è impostato sull'ID utente reale. Se il -p l'opzione viene fornita all'avvio, l'
l'ID utente effettivo non viene reimpostato. Disattivando questa opzione,
gli ID utente e gruppo effettivi devono essere impostati sugli ID utente e gruppo reali.
-t Esci dopo aver letto ed eseguito un comando.
-u Tratta le variabili e i parametri non impostati diversi dai parametri speciali "@"
e "*" come errore durante l'esecuzione dell'espansione dei parametri. Se l'espansione è
tentato su una variabile o parametro non impostato, la shell stampa un errore
messaggio e, se non è interattivo, esce con uno stato diverso da zero.
-v Stampa le righe di input della shell man mano che vengono lette.
-x Dopo aver espanso ciascuno semplice command, da comando, Custodie comando, select
comando o aritmetica da comando, visualizza il valore espanso di PS4,
seguito dal comando e dai suoi argomenti espansi o dall'elenco di parole associato.
-B Il guscio esegue l'espansione del rinforzo (vedere Bretelle Espansione sopra). Questo è su
per impostazione predefinita.
-C Se impostato, bash non sovrascrive un file esistente con il >, >&e <>
operatori di reindirizzamento. Questo può essere sovrascritto durante la creazione di file di output
utilizzando l'operatore di reindirizzamento >| invece di >.
-E Se impostato, qualsiasi trappola su ERR è ereditato dalle funzioni shell, comando
sostituzioni e comandi eseguiti in un ambiente subshell. Il ERR
In questi casi la trappola normalmente non viene ereditata.
-H Consentire a tutti ! sostituzione della cronologia dello stile. Questa opzione è attiva per impostazione predefinita quando
la shell è interattiva.
-P Se impostato, la shell non risolve i collegamenti simbolici durante l'esecuzione dei comandi
ad esempio cd che cambia la directory di lavoro corrente. Utilizza la directory fisica
struttura delle directory invece. Per impostazione predefinita, bash segue la catena logica di
directory quando si eseguono comandi che modificano la directory corrente.
-T Se impostato, tutte le trappole su DEBUG e RITORNO sono ereditati dalle funzioni shell,
sostituzioni di comandi e comandi eseguiti in un ambiente subshell.
. DEBUG e RITORNO in questi casi le trappole normalmente non vengono ereditate.
-- Se nessun argomento segue questa opzione, i parametri posizionali sono
non impostato. Altrimenti, i parametri posizionali vengono impostati su args, anche se
alcuni di loro iniziano con un -.
- Segnala la fine delle opzioni, causa tutte le rimanenti argda assegnare al
parametri posizionali. Il -x e -v le opzioni sono disattivate. Se ci sono
no args, i parametri posizionali rimangono invariati.

Le opzioni sono disattivate per impostazione predefinita, salvo diversa indicazione. Utilizzare + anziché -
fa sì che queste opzioni vengano disattivate. Le opzioni possono anche essere specificate come
argomenti per un'invocazione della shell. L'insieme corrente di opzioni può essere trovato
in $-Lo stato restituito è sempre vero, a meno che non venga rilevata un'opzione non valida.

spostamento [n]
I parametri posizionali da n+1 ... vengono rinominati in $1 .... Scheda Sintetica
rappresentato dai numeri $# giù verso $#-n+1 non è impostato. n deve essere non negativo
numero minore o uguale a $#. Se n è 0, nessun parametro viene modificato. Se n is
non dato, si presume che sia 1. Se n è maggiore $#, il posizionale
i parametri non vengono modificati. Lo stato di ritorno è maggiore di zero se n è più grande
di $# o minore di zero; altrimenti 0.

negozio [-pqsu] [-o] [nomeopt ...]
Attiva/disattiva i valori delle impostazioni che controllano il comportamento opzionale della shell. Le impostazioni
possono essere quelli elencati di seguito, oppure, se il -o l'opzione è utilizzata, quelle disponibili
con la -o opzione per il set comando incorporato. Senza opzioni, o con l' -p
opzione, viene visualizzato un elenco di tutte le opzioni impostabili, con l'indicazione se
o non ciascuno è impostato. Il -p L'opzione fa sì che l'output venga visualizzato in un formato che può
essere riutilizzato come input. Altre opzioni hanno i seguenti significati:
-s Abilita (imposta) ciascuno nomeopt.
-u Disabilita (deseleziona) ciascuno nomeopt.
-q Sopprime l'uscita normale (modalità silenziosa); lo stato di ritorno indica se
, il nomeopt è impostato o non impostato. Se più nomeopt gli argomenti sono forniti con
-q, lo stato di ritorno è zero se tutto nomi di scelta sono abilitati; diversi da zero
altrimenti.
-o Limita i valori di nomeopt essere quelli definiti per il -o opzione per il
set incorporato.

Se uno dei due -s or -u è usato senza nomeopt argomenti, negozio mostra solo quelli
opzioni che sono rispettivamente impostate o non impostate. Salvo diversa indicazione, il negozio
le opzioni sono disabilitate (non impostate) per impostazione predefinita.

Lo stato di ritorno quando si elencano le opzioni è zero se tutto nomi di scelta sono abilitati, non-
altrimenti zero. Quando si impostano o si deimpostano le opzioni, lo stato di ritorno è zero
a meno che un nomeopt non è un'opzione shell valida.

L'elenco dei negozio opzioni è:

autoc Se impostato, un nome di comando che è il nome di una directory viene eseguito come se fosse
erano l'argomento a favore cd comando. Questa opzione è utilizzata solo da
conchiglie interattive.
cdable_vars
Se impostato, un argomento per cd comando incorporato che non è una directory è
si presume che sia il nome di una variabile il cui valore è la directory da modificare
a.
cdspell Se impostato, piccoli errori nell'ortografia di un componente di directory in un cd
il comando verrà corretto. Gli errori controllati vengono trasposti
caratteri, un carattere mancante e un carattere di troppo. Se un
viene trovata la correzione, viene stampato il nome del file corretto e viene eseguito il comando
procede. Questa opzione è utilizzata solo dalle shell interattive.
checkhash
Se impostato, bash controlla che un comando trovato nella tabella hash esista prima
cercando di eseguirlo. Se un comando hash non esiste più, un percorso normale
viene eseguita la ricerca.
controlla i lavori
Se impostato, bash elenca lo stato di tutti i lavori interrotti e in esecuzione prima
uscire da una shell interattiva. Se sono in esecuzione dei lavori, ciò causa il
l'uscita deve essere rinviata fino a quando non si tenti una seconda uscita senza un intervento
comando (vedi JOB CONTROLLO sopra). La shell posticipa sempre l'uscita se presente
i lavori vengono interrotti.
controlla la dimensione
Se impostato, bash controlla la dimensione della finestra dopo ogni comando e, se necessario,
aggiorna i valori di LINEE e COLONNE.
cmdhist Se impostato, bash tenta di salvare tutte le righe di un comando multi-riga in
stessa voce della cronologia. Ciò consente di modificare facilmente i comandi multi-riga.
compat31
Se impostato, bash cambia il suo comportamento a quello della versione 3.1 rispetto a
argomenti citati al [[ comando condizionale =~ operatore e locale-
confronto di stringhe specifiche quando si utilizza il [[ comando condizionale < e >
operatori. Le versioni di Bash precedenti a bash-4.1 utilizzano la collazione ASCII e
strcmp(3); bash-4.1 e versioni successive utilizzano la sequenza di collazione delle impostazioni locali correnti
e strcoll(3).
compat32
Se impostato, bash cambia il suo comportamento a quello della versione 3.2 rispetto a
confronto di stringhe specifiche per le impostazioni locali quando si utilizza [[ comando condizionale <
e > operatori (vedi voce precedente).
compat40
Se impostato, bash cambia il suo comportamento a quello della versione 4.0 rispetto a
confronto di stringhe specifiche per le impostazioni locali quando si utilizza [[ comando condizionale <
e > operatori (vedi descrizione di compat31) e l'effetto di
interrompere un elenco di comandi. Le versioni Bash 4.0 e successive interrompono l'
elenca come se la shell avesse ricevuto l'interruzione; le versioni precedenti continuano
con il comando successivo nell'elenco.
compat41
Se impostato, bash, quando in posix modalità, tratta un singolo apice in un doppio apice
espansione del parametro come carattere speciale. Gli apici singoli devono corrispondere
(un numero pari) e i caratteri tra le virgolette singole sono
considerato tra virgolette. Questo è il comportamento della modalità posix fino alla versione 4.1.
Il comportamento predefinito di bash rimane lo stesso delle versioni precedenti.
compat42
Se impostato, bash non elabora la stringa di sostituzione nel modello
sostituzione espansione delle parole mediante rimozione delle virgolette.
citazione completa
Se impostato, bash cita tutti i metacaratteri della shell nei nomi dei file e nelle directory
nomi durante l'esecuzione del completamento. Se non impostato, bash rimuove i metacaratteri
come il simbolo del dollaro dal set di caratteri che saranno citati in
nomi di file completati quando questi metacaratteri appaiono nella variabile shell
riferimenti in parole da completare. Ciò significa che i segni di dollaro in
i nomi delle variabili che si espandono nelle directory non saranno tra virgolette; tuttavia, qualsiasi
Anche i simboli del dollaro che compaiono nei nomi dei file non saranno citati. Questo è
attivo solo quando bash utilizza barre rovesciate per racchiudere tra virgolette i nomi dei file completi.
Questa variabile è impostata di default, che è il comportamento bash predefinito in
versioni fino alla 4.2.
direexpand
Se impostato, bash sostituisce i nomi delle directory con i risultati dell'espansione delle parole
quando si esegue il completamento del nome del file. Ciò modifica il contenuto del
buffer di modifica readline. Se non impostato, bash tentativi di preservare ciò che il
digitato dall'utente.
dirspell
Se impostato, bash tentativi di correzione ortografica sui nomi delle directory durante la parola
completamento se il nome della directory inizialmente fornito non esiste.
dotglob Se impostato, bash include i nomi dei file che iniziano con `.' nei risultati di
espansione del percorso.
errore esecutivo
Se impostato, una shell non interattiva non uscirà se non può eseguire il file
specificato come argomento per exec comando incorporato. Una shell interattiva
non esce se exec non riesce.
espandi_alias
Se impostato, gli alias vengono espansi come descritto sopra in ALIAS. Questa opzione
è abilitato di default per le shell interattive.
debug esteso
Se impostato, viene abilitato il comportamento previsto per l'uso da parte dei debugger:
1. . -F opzione per il dichiarare builtin visualizza il nome del file sorgente
e il numero di riga corrispondente a ciascun nome di funzione fornito come
discussione.
2. Se il comando eseguito dal DEBUG trap restituisce un valore diverso da zero, il
il comando successivo viene saltato e non viene eseguito.
3. Se il comando eseguito dal DEBUG trap restituisce un valore di 2 e
shell è in esecuzione in una subroutine (una funzione shell o una shell
script eseguito dal . or source builtins), una chiamata a ritorno is
simulato.
4. BASH_ARGC e BASH_ARGV vengono aggiornati come descritto nel loro
descrizioni sopra.
5. Il tracciamento delle funzioni è abilitato: sostituzione dei comandi, funzioni shell,
e sottoshell invocate con ( command ) ereditare il DEBUG e RITORNO
trappole.
6. Il tracciamento degli errori è abilitato: sostituzione dei comandi, funzioni shell,
e sottoshell invocate con ( command ) ereditare il ERR trappola.
extglob Se impostato, le funzionalità di corrispondenza di modelli estesi descritte sopra in
Pathname Espansione sono abilitati.
citazione ext
Se impostato, $'stringa' e $"stringa" la citazione viene eseguita all'interno ${parametro}
espansioni racchiuse tra virgolette doppie. Questa opzione è abilitata per impostazione predefinita.
failglob
Se impostato, i modelli che non riescono a corrispondere ai nomi dei file durante l'espansione del percorso
causare un errore di espansione.
force_fignore
Se impostato, i suffissi specificati da FIGNORE variabile shell causa parole a
essere ignorato quando si esegue il completamento delle parole anche se le parole ignorate sono
gli unici completamenti possibili. Vedi SHELL VARIABILI sopra per una descrizione
of FIGNOREQuesta opzione è abilitata per impostazione predefinita.
globasciiranges
Se impostato, le espressioni di intervallo utilizzate nelle espressioni tra parentesi di corrispondenza dei modelli (vedere
Cartamodello Abbinare sopra) si comportano come se fossero nella tradizionale impostazione locale C quando
esecuzione di confronti. Vale a dire, la sequenza di confronto delle impostazioni locali correnti
non viene preso in considerazione, quindi b non collazionerà tra A e Be
i caratteri ASCII maiuscoli e minuscoli verranno confrontati.
stella globulare
Se impostato, il modello ** utilizzato in un contesto di espansione del percorso corrisponderà a tutti
file e zero o più directory e sottodirectory. Se il modello è
seguita da una /, corrispondono solo le directory e le sottodirectory.
gnu_errfmt
Se impostato, i messaggi di errore della shell vengono scritti nel messaggio di errore GNU standard
formato.
histappend
Se impostato, l'elenco cronologico viene aggiunto al file denominato dal valore di
ARCHIVIO variabile quando la shell esce, anziché sovrascrivere il file.
modifica storica
Se impostato, e readline viene utilizzato, all'utente viene data l'opportunità di ri-
modificare una sostituzione della cronologia non riuscita.
verifica istologica
Se impostato, e readline viene utilizzato, i risultati della sostituzione della cronologia sono
non viene passato immediatamente al parser della shell. Invece, la riga risultante è
caricato nel readline buffer di modifica, consentendo ulteriori modifiche.
hostcompleto
Se impostato, e readline viene utilizzato, bash tenterà di eseguire hostname
completamento quando una parola contenente un @ è in fase di completamento (vedi Completamento
per LINEA DI LETTURA sopra). Questa opzione è abilitata per impostazione predefinita.
huponexit
Se impostato, bash invierà SIGILLO a tutti i lavori quando una shell di login interattiva
esce.
commenti interattivi
Se impostato, consente una parola che inizia con # per far sì che quella parola e tutto il resto
caratteri su quella riga da ignorare in una shell interattiva (vedere COMMENTI
sopra). Questa opzione è abilitata per impostazione predefinita.
ultima pipa
Se impostato e il controllo del lavoro non è attivo, la shell esegue l'ultimo comando di un
pipeline non eseguita in background nell'ambiente shell corrente.
litico Se impostato, e il cmdhist l'opzione è abilitata, i comandi multi-linea vengono salvati in
la cronologia con nuove righe incorporate anziché utilizzare separatori con punto e virgola
dove possibile.
login_shell
La shell imposta questa opzione se viene avviata come shell di login (vedere
INVOCAZIONE sopra). Il valore non può essere modificato.
avviso di posta
Se impostato, e un file che bash il controllo della posta è stato effettuato da quando
l'ultima volta che è stato controllato, il messaggio ``La posta in file di posta è stata
viene visualizzato ''letto''.
no_empty_cmd_completion
Se impostato, e readline viene utilizzato, bash non tenterà di cercare il
PERCORSO per possibili completamenti quando il completamento viene tentato su uno spazio vuoto
linea.
nocaseglob
Se impostato, bash corrisponde ai nomi dei file senza distinzione tra maiuscole e minuscole quando
eseguendo l'espansione del percorso (vedere Pathname Espansione sopra).
nessun caso corrispondente
Se impostato, bash corrisponde ai modelli in modo non sensibile alle maiuscole/minuscole durante l'esecuzione
corrispondenza durante l'esecuzione Custodie or [[ comandi condizionali.
nullglob
Se impostato, bash consente modelli che non corrispondono ad alcun file (vedere Pathname Espansione
sopra) per espandersi in una stringa nulla, anziché in se stessi.
progcomp
Se impostato, le funzionalità di completamento programmabili (vedere Programmabile Completamento
sopra) sono abilitati. Questa opzione è abilitata per impostazione predefinita.
promptvars
Se impostato, le stringhe di prompt subiscono l'espansione dei parametri, la sostituzione dei comandi,
espansione aritmetica e rimozione delle virgolette dopo essere state espanse come descritto
in SUGGERIMENTO sopra. Questa opzione è abilitata per impostazione predefinita.
shell limitata
La shell imposta questa opzione se viene avviata in modalità limitata (vedere
LIMITATO SHELL di seguito). Il valore non può essere modificato. Questo non viene reimpostato
quando i file di avvio vengono eseguiti, consentendo ai file di avvio di scoprire
se una shell è limitata o meno.
shift_verbose
Se impostato, il spostamento builtin stampa un messaggio di errore quando il conteggio dei turni
supera il numero di parametri posizionali.
percorso sorgente
Se impostato, il source (.) builtin utilizza il valore di PERCORSO per trovare la directory
contenente il file fornito come argomento. Questa opzione è abilitata da
predefinito.
xpg_echo
Se impostato, il eco builtin espande le sequenze di escape barra rovesciata per impostazione predefinita.

sospendere [-f]
Sospendi l'esecuzione di questa shell finché non riceve un PROSSIMO CONTO segnale. Un login
la shell non può essere sospesa; il -f l'opzione può essere utilizzata per ignorare questo e forzare l'
sospensione. Lo stato di ritorno è 0 a meno che la shell non sia una shell di login e -f non è
fornito o se il controllo del lavoro non è abilitato.

test espr
[ espr ]
Restituisce uno stato di 0 (vero) o 1 (falso) a seconda della valutazione del
espressione condizionale esprOgni operatore e operando deve essere separato
argomento. Le espressioni sono composte dalle primarie descritte sopra sotto
CONDIZIONALE ESPRESSIONI. test non accetta alcuna opzione, né accetta e
ignorare un argomento di -- come a significare la fine delle opzioni.

Le espressioni possono essere combinate utilizzando i seguenti operatori, elencati in ordine decrescente
ordine di precedenza. La valutazione dipende dal numero di argomenti; vedi sotto.
La precedenza degli operatori viene utilizzata quando ci sono cinque o più argomenti.
! espr vero se espr è falso.
( espr )
Restituisce il valore di esprQuesto può essere utilizzato per sovrascrivere il normale
precedenza degli operatori.
espr1 -a espr2
Vero se entrambi espr1 e espr2 sono vere
espr1 -o espr2
Vero se entrambi espr1 or espr2 è vero.

test e [ valutare le espressioni condizionali utilizzando un insieme di regole basate su
numero di argomenti.

Argomenti 0
L'espressione è falsa.
1 argomento
L'espressione è vera se e solo se l'argomento non è nullo.
Argomenti 2
Se il primo argomento è !, l'espressione è vera se e solo se il secondo
l'argomento è nullo. Se il primo argomento è uno dei condizionali unari
operatori elencati sopra sotto CONDIZIONALE ESPRESSIONI, l'espressione è vera
se il test unario è vero. Se il primo argomento non è un unario valido
operatore condizionale, l'espressione è falsa.
Argomenti 3
Le seguenti condizioni vengono applicate nell'ordine elencato. Se il secondo
argomento è uno degli operatori condizionali binari elencati sopra sotto
CONDIZIONALE ESPRESSIONI, il risultato dell'espressione è il risultato di
test binario utilizzando il primo e il terzo argomento come operandi. Il -a e -o
Gli operatori sono considerati operatori binari quando ci sono tre argomenti.
Se il primo argomento è !, il valore è la negazione dei due argomenti
test utilizzando il secondo e il terzo argomento. Se il primo argomento è esattamente
( e il terzo argomento è esattamente ), il risultato è il test a un argomento
del secondo argomento. Altrimenti, l'espressione è falsa.
Argomenti 4
Se il primo argomento è !, il risultato è la negazione del triargomento
espressione composta dagli argomenti rimanenti. Altrimenti, l'espressione
viene analizzato e valutato in base alla precedenza utilizzando le regole elencate
sopra.
5 o più argomenti
L'espressione viene analizzata e valutata in base alla precedenza utilizzando
regole elencate sopra.

Se usato con test or [, l' < e > gli operatori ordinano lessicograficamente usando ASCII
ordinazione.

volte Stampa i tempi utente e di sistema accumulati per la shell e per i processi eseguiti
dalla shell. Lo stato di ritorno è 0.

trappola [-lp] [[arg] sigspec ...]
Il comando arg deve essere letto ed eseguito quando la shell riceve il/i segnale/i
sigspec. Se arg è assente (e c'è un singolo sigspec) o puoi -, ciascuno specificato
il segnale viene ripristinato alla sua disposizione originale (il valore che aveva all'ingresso nel
guscio). Se arg è la stringa nulla il segnale specificato da ciascuno sigspec viene ignorato
dalla shell e dai comandi che invoca. Se arg non è presente e -p è stata
forniti, quindi i comandi trap associati a ciascuno sigspec vengono visualizzati. Se no
vengono forniti argomenti o solo se -p viene data, trappola stampa l'elenco dei comandi
associato a ciascun segnale. Il -l L'opzione fa sì che la shell stampi un elenco di
nomi dei segnali e i numeri corrispondenti. Ogni sigspec è un nome di segnale
definito insegnale.h>, o un numero di segnale. I nomi dei segnali non sono sensibili alle maiuscole e alle minuscole e
, il SIG il prefisso è facoltativo.

Se un sigspec is EXIT (0) il comando arg viene eseguito all'uscita dalla shell. Se un
sigspec is DEBUG, il comando arg viene eseguito prima di ogni semplice command, da
comando, Custodie comando, select comando, ogni aritmetica da comando, e prima del
il primo comando viene eseguito in una funzione shell (vedere SHELL GRAMMATICA sopra). Fare riferimento al
descrizione del debug esteso opzione per il negozio incorporato per i dettagli del suo effetto
sul canale DEBUG trappola. Se una sigspec is RITORNO, il comando arg viene eseguito ogni volta che un
funzione shell o uno script eseguito con . or source finiture da incasso
esecuzione.

Se un sigspec is ERR, il comando arg viene eseguito ogni volta che una pipeline (che può
consistere in un singolo comando semplice), un elenco o un comando composto restituisce un
stato di uscita diverso da zero, soggetto alle seguenti condizioni. ERR la trappola non è
eseguito se il comando non riuscito fa parte dell'elenco dei comandi immediatamente successivo a un
while or fino a quando parola chiave, parte del test in un if istruzione, parte di un comando
eseguito in un && or || elenco eccetto il comando che segue la finale && or ||, qualunque
comando in una pipeline ma l'ultimo, o se il valore di ritorno del comando è in corso
invertito usando !. Queste sono le stesse condizioni rispettate dal errore (-e) opzione.

I segnali ignorati all'ingresso nella shell non possono essere intercettati o ripristinati. Intrappolati
i segnali che non vengono ignorati vengono ripristinati ai loro valori originali in una sottoshell
o ambiente subshell quando ne viene creato uno. Lo stato di ritorno è falso se presente
sigspec non è valido; altrimenti trappola restituisce true.

Digitare [-aftpP] Nome [Nome ...]
Senza opzioni, indica come ciascuna Nome verrebbe interpretato se usato come comando
nome. Se il -t viene utilizzata l'opzione, Digitare stampa una stringa che è una delle alias,
parola chiave, funzione, incorporato, o filetto if Nome è un alias, parola riservata della shell,
funzione, builtin o file su disco, rispettivamente. Se il Nome non si trova, allora
non viene stampato nulla e viene restituito uno stato di uscita falso. Se -p opzione è
Usato, Digitare restituisce il nome del file su disco che verrebbe eseguito se Nome
sono stati specificati come nome di comando, o niente se ``type -t name'' non restituisse
filetto. -P l'opzione forza un PERCORSO cerca ciascuno Nome, anche se ``type -t name''
non sarebbe tornato filettoSe un comando è sottoposto a hash, -p e -P stampa il valore hash,
che non è necessariamente il file che appare per primo in PERCORSO. Se il -a opzione è
Usato, Digitare stampa tutti i posti che contengono un eseguibile denominato Nome. Questo
include alias e funzioni, se e solo se -p l'opzione non è utilizzata. L'
la tabella dei comandi hash non viene consultata quando si utilizza -a. -f l'opzione sopprime
ricerca della funzione shell, come con command incorporato. Digitare restituisce true se tutti
se gli argomenti sono stati trovati, falso se non ne è stato trovato nessuno.

ulimit [-HSTabcdefilmnpqrstuvx [limitare]]
Fornisce il controllo sulle risorse disponibili alla shell e ai processi avviati
da esso, sui sistemi che consentono tale controllo. Il -H e -S le opzioni specificano che il
Per la risorsa specificata è impostato un limite rigido o flessibile. Un limite rigido non può essere aumentato.
da un utente non root una volta impostato; un limite flessibile può essere aumentato fino al valore di
il limite massimo. Se nessuno dei due -H-S è specificato, sia i limiti soft che hard
sono impostati. Il valore di limitare può essere un numero nell'unità specificata per la risorsa
o uno dei valori speciali difficile, morbido, o illimitato, che rappresentano la corrente
limite rigido, limite flessibile corrente e nessun limite, rispettivamente. Se limitare is
omesso, viene stampato il valore corrente del limite flessibile della risorsa, a meno che il
-H viene fornita l'opzione. Quando viene specificata più di una risorsa, il nome del limite e
Le unità vengono stampate prima del valore. Le altre opzioni vengono interpretate come segue:
-a Sono riportati tutti i limiti attuali
-b La dimensione massima del buffer del socket
-c La dimensione massima dei file core creati
-d La dimensione massima del segmento di dati di un processo
-e La massima priorità di pianificazione ("nice")
-f La dimensione massima dei file scritti dalla shell e dai suoi figli
-i Il numero massimo di segnali in sospeso
-l La dimensione massima che può essere bloccata in memoria
-m La dimensione massima del set residente (molti sistemi non rispettano questo limite)
-n Il numero massimo di descrittori di file aperti (la maggior parte dei sistemi non lo consente)
valore da impostare)
-p La dimensione del pipe in blocchi da 512 byte (potrebbe non essere impostata)
-q Il numero massimo di byte nelle code dei messaggi POSIX
-r La massima priorità di pianificazione in tempo reale
-s La dimensione massima dello stack
-t La quantità massima di tempo della CPU in secondi
-u Il numero massimo di processi disponibili per un singolo utente
-v La quantità massima di memoria virtuale disponibile per la shell e, su alcuni
sistemi, ai suoi figli
-x Il numero massimo di blocchi di file
-T Il numero massimo di thread

If limitare è dato, e il -a l'opzione non viene utilizzata, limitare è il nuovo valore del
risorsa specificata. Se non viene fornita alcuna opzione, allora -f si presume. I valori sono in
Incrementi di 1024 byte, eccetto per -t, che è in secondi; -p, che è in unità di
blocchi da 512 byte; e -T, -b, -ne -u, che sono valori non scalati. Il ritorno
lo stato è 0 a meno che non venga fornita un'opzione o un argomento non valido o si verifichi un errore
mentre si imposta un nuovo limite.

umask [-p] [-S] [modo]
La maschera di creazione dei file utente è impostata su modo. Se modo inizia con una cifra, è
interpretato come un numero ottale; altrimenti viene interpretato come una maschera di modalità simbolica
simile a quello accettato da chmod(1). Se modo viene omesso, il valore corrente del
la maschera è stampata. La -S L'opzione fa sì che la maschera venga stampata in forma simbolica; l'
l'output predefinito è un numero ottale. Se il -p è fornita l'opzione e modo is
omesso, l'output è in un formato che può essere riutilizzato come input. Lo stato di ritorno è
0 se la modalità è stata modificata correttamente o no modo è stato fornito un argomento e
falso altrimenti.

Unalias [-a] [Nome ...]
Rimuovi ciascuno Nome dall'elenco degli alias definiti. Se -a è fornito, tutti gli alias
le definizioni vengono rimosse. Il valore restituito è true a meno che non venga fornito un Nome non è un
alias definito.

non settato [-fv] [-n] [Nome ...]
Per ciascun Nome, rimuovere la variabile o la funzione corrispondente. Se il -v opzione è
dato, ciascuno Nome si riferisce a una variabile shell e tale variabile viene rimossa. Leggi-
solo le variabili non possono essere annullate. Se -f è specificato, ciascuno Nome si riferisce a una conchiglia
funzione e la definizione della funzione viene rimossa. Se la -n l'opzione è fornita,
e Nome è una variabile con la nameref attributo, Nome sarà deselezionato piuttosto che
la variabile a cui fa riferimento. -n non ha alcun effetto se il -f è fornita l'opzione. Se non
sono fornite opzioni, ciascuna Nome si riferisce a una variabile; se non c'è alcuna variabile da
quel nome, qualsiasi funzione con quel nome non è impostata. Ogni variabile o funzione non impostata
viene rimosso dall'ambiente passato ai comandi successivi. Se uno qualsiasi di
COMP_PAROLE INTERROTTE, CASUALE, SECONDI, LINENO, HISTCMD, NOMEFUNZIONE, GRUPPI, o DIRSTACK
non vengono impostati, perdono le loro proprietà speciali, anche se vengono successivamente reimpostati.
Lo stato di uscita è vero a meno che un Nome è di sola lettura.

aspettare [-n] [n ...]
Attendi ogni processo figlio specificato e restituisci il suo stato di terminazione. Ogni n
può essere un ID di processo o una specifica di lavoro; se viene fornita una specifica di lavoro, tutti i processi
nella pipeline di quel lavoro sono attesi. Se n non è dato, tutti attualmente attivi
i processi figlio sono attesi e lo stato di ritorno è zero. Se il -n opzione è
fornito, aspettare attende che un lavoro termini e restituisce il suo stato di uscita. Se n
specifica un processo o un lavoro inesistente, lo stato di ritorno è 127. In caso contrario,
return status è lo stato di uscita dell'ultimo processo o lavoro atteso.

LIMITATO SHELL


If bash inizia con il nome rbasho -r l'opzione viene fornita al momento dell'invocazione, il
shell diventa limitato. Una shell ristretta viene utilizzata per configurare un ambiente more
controllato rispetto al guscio standard. Si comporta in modo identico a bash con l'eccezione
che sono vietati o non eseguiti:

· cambiare directory con cd

· impostazione o disattivazione dei valori di SHELL, PERCORSO, ENV, o BASH_ENV

· specificare i nomi dei comandi contenenti /

· specificando un nome di file contenente a / come argomento per il . comando integrato

· specificando un nome di file contenente una barra come argomento per il -p opzione per il
hash comando integrato

· importazione di definizioni di funzioni dall'ambiente shell all'avvio

· analizzando il valore di CONCHIGLIE dall'ambiente shell all'avvio

· reindirizzamento dell'output utilizzando gli operatori di reindirizzamento >, >|, <>, >&, &> e >>

· usando il exec comando integrato per sostituire la shell con un altro comando

· aggiungere o eliminare comandi incorporati con il -f e -d opzioni per il enable
comando integrato

· usando il enable comando incorporato per abilitare i comandi incorporati della shell disabilitati

· specificando il -p opzione per il command comando integrato

· disattivare la modalità limitata con set +r or set +o limitato.

Queste restrizioni vengono applicate dopo la lettura dei file di avvio.

Quando viene eseguito un comando che si rivela essere uno script shell (vedere COMANDO ESECUZIONE
sopra), rbash disattiva tutte le restrizioni nella shell generata per eseguire lo script.

Utilizzare bash-static online utilizzando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad




×
Cookie per pubblicità
❤️Fai acquisti, prenota o acquista qui: nessun costo, aiuta a mantenere i servizi gratuiti.