Il comando di Linux bash è unsh-compatibile interprete del linguaggio di comando che esegue comandi letti dallo standard input o da un file.bash incorpora anche funzioni utili dai gusci Korn e C (ksh ecsh).
Opzioni di Bash
Oltre alle opzioni di shell a carattere singolo documentate nella descrizione delimpostato comando incorporato,bash interpreta le seguenti opzioni quando viene invocato:
- -c stringa: Se la-c l'opzione è presente, quindi i comandi vengono letti da stringa . Se ci sono argomenti dopo il stringa , vengono assegnati ai parametri posizionali, a partire da$0.
- -io: Se la-io l'opzione è presente, la shell è interattivo .
- -l: Renderebash agire come se fosse stato invocato come shell di login.
- -r: Se la-r l'opzione è presente, la shell diventa limitato.
- -S: Se la-S l'opzione è presente, o se non rimangono argomenti dopo l'elaborazione dell'opzione, i comandi vengono letti dallo standard input. Questa opzione consente di impostare i parametri posizionali quando si richiama una shell interattiva.
- -D: Un elenco di tutte le stringhe con doppie virgolette precedute da$ è stampato sullo standard output. Queste sono le stringhe che sono soggette alla traduzione della lingua quando la locale corrente non lo èC oPOSIX. Ciò implica il -n opzione; nessun comando verrà eseguito.
- - + O shopt_option : shopt_option è una delle opzioni della shell accettata dashopt incorporato. Se shopt_option è presente,-O imposta il valore di tale opzione, e+ O lo disattiva. Se shopt_option non viene fornito, i nomi e i valori delle opzioni della shell accettati dashopt sono stampati sullo standard output. Se l'opzione di chiamata è + O, l'output viene visualizzato in un formato che può essere riutilizzato come input.
- --: UN-- segnala la fine delle opzioni e disabilita l'ulteriore elaborazione delle opzioni. Qualsiasi argomento dopo il-- sono trattati come nomi di file e argomenti. Una discussione di- è equivalente a--.
bash interpreta anche un numero di opzioni multi-carattere. Queste opzioni devono apparire sulla riga di comando prima che le opzioni a carattere singolo vengano riconosciute:
- --dump-po-strings: Equivalente a-D, ma l'uscita è nella GNU gettext Po (oggetto portatile) in formato file.
- --dump-stringhe: Equivalente a-D.
- --Aiuto: Visualizza un messaggio di utilizzo sullo standard output ed esce correttamente.
- --init file: file e --rcfile file : Esegui comandi da file invece del file di inizializzazione personale standard ~ / .Bashrc se la shell è interattiva
- --accesso: Equivalente a-l.
- --noediting: Non usare GNUlinea di lettura libreria per leggere le righe di comando quando la shell è interattiva.
- --noprofile: Non leggere il file di avvio del sistema / Etc / profile o uno qualsiasi dei file di inizializzazione personali ~ / .Bash_profile , ~ / .Bash_login , o ~ / .Profile . Di default,bash legge questi file quando è invocato come shell di login.
- --norc: Non leggere ed eseguire il file di inizializzazione personale ~ / .Bashrc se la shell è interattiva Questa opzione è attiva per impostazione predefinita se la shell è invocata comesh.
- --posix: Modifica il comportamento dibash dove l'operazione predefinita differisce dallo standard POSIX per corrispondere allo standard ( modalità posix ).
- --limitato: Il guscio diventa limitato.
- --rpm-richiede: Produce l'elenco dei file necessari per l'esecuzione dello script della shell. Ciò implica "-n" ed è soggetto alle stesse limitazioni del controllo del controllo degli errori in fase di compilazione; I backtick, i test e le valute non vengono analizzati in modo da poter perdere alcune dipendenze.
- --verbose: Equivalente a-v.
- --versione: Mostra le informazioni sulla versione per questa istanza dibash sullo standard output e uscire con successo.
argomenti
Se gli argomenti rimangono dopo l'elaborazione dell'opzione e nessuno dei due-c né il-S l'opzione è stata fornita, si presuppone che il primo argomento sia il nome di un file contenente comandi di shell. Se bash è invocato in questo modo,$0 è impostato sul nome del file e i parametri posizionali sono impostati sugli argomenti rimanenti.bash legge ed esegue i comandi da questo file; poi esce.bashLo stato di uscita è lo stato di uscita dell'ultimo comando eseguito nello script. Se non vengono eseguiti comandi, lo stato di uscita è 0. Viene prima tentato di aprire il file nella directory corrente e, se non viene trovato alcun file, la shell cerca nelle directory inSENTIERO per la sceneggiatura.
Invocazione
UN shell di login è uno il cui primo carattere dell'argomento zero è a-, o uno iniziato con il--accesso opzione.
Un interattivo shell è uno avviato senza argomenti non-option e senza il-c opzione il cui input e output standard sono entrambi collegati ai terminali come determinato da isatty (3), o uno iniziato con il-io opzione.PS1 è impostato e $- include se bash è interattivo, consentendo uno script di shell o un file di avvio per testare questo stato.
I paragrafi seguenti descrivono comebash esegue i suoi file di avvio. Se uno dei file esiste ma non può essere letto,bash segnala un errore. Le tilde sono espanse nei nomi dei file come descritto in Tilde Expansion.
quandobash viene invocato come shell di login interattiva o come shell non interattiva con--accesso opzione, prima legge e esegue i comandi dal file / Etc / profile , se quel file esiste. Dopo aver letto quel file, cerca ~ / .Bash_profile , ~ / .Bash_login , e ~ / .Profile , in questo ordine, legge ed esegue i comandi dal primo esistente ed è leggibile. Il--noprofile opzione può essere utilizzata quando viene avviata la shell per inibire questo comportamento.
Quando esce una shell di login,bash legge ed esegue i comandi dal file ~ / .Bash_logout se esiste
Quando viene avviata una shell interattiva che non è una shell di login,bash legge ed esegue i comandi da ~ / .Bashrc , se quel file esiste. Questo può essere inibito usando il--norc opzione. Il--rcfile file l'opzione forzeràbash leggere ed eseguire comandi da file invece di ~ / .Bashrc .
quandobash viene avviato in modo non interattivo: per eseguire uno script di shell, ad esempio, cerca la variabileBASH_ENV nell'ambiente, espande il suo valore se appare lì e utilizza il valore espanso come nome di un file da leggere ed eseguire.bash si comporta come se il seguente comando fosse eseguito:
if -n "$ BASH_ENV"; poi . "$ BASH_ENV"; fi
ma il valore delSENTIERO la variabile non viene utilizzata per cercare il nome del file. Sebash è invocato con il nomesh, prova a simulare il comportamento di avvio delle versioni storiche dish il più vicino possibile, pur essendo conforme allo standard POSIX. Quando invocato come shell di login interattiva o shell non interattiva con--accesso opzione, tenta innanzitutto di leggere ed eseguire comandi da / Etc / profile e ~ / .Profile , in questo ordine. Il--noprofile l'opzione può essere utilizzata per inibire questo comportamento. Quando invocato come shell interattiva con il nome sh, bash cerca la variabileENV, espande il suo valore se è definito e utilizza il valore espanso come nome di un file da leggere ed eseguire. Poiché una shell ha invocato comesh non tenta di leggere ed eseguire comandi da altri file di avvio, il--rcfile l'opzione non ha alcun effetto. Una shell non interattiva invocata con il nomesh non tenta di leggere altri file di avvio. Quando invocato comesh, bash entra posix modalità dopo la lettura dei file di avvio. quandobash è 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 ilENV variabile e comandi vengono letti ed eseguiti dal file il cui nome è il valore espanso. Nessun altro file di avvio viene letto. bash tenta di determinare quando viene eseguito dal daemon della shell remota, di solito rshd . Se bash determina che viene gestito da rshd , legge ed esegue comandi da ~ / .Bashrc , se quel file esiste ed è leggibile. Non lo farà se invocato comesh. Il--norc opzione può essere usata per inibire questo comportamento, e il--rcfile opzione può essere utilizzata per forzare un altro file da leggere, ma rshd generalmente non richiama la shell con queste opzioni o consente di specificarle. Se la shell viene avviata con l'id utente effettivo (gruppo) non uguale all'id utente reale (gruppo), e il-p opzione non viene fornita, nessun file di avvio viene letto, le funzioni della shell non sono ereditate dall'ambiente, ilSHELLOPTS variabile, se appare nell'ambiente, viene ignorata e l'ID utente effettivo è impostato sull'id utente reale. Se la-p l'opzione viene fornita al richiamo, il comportamento all'avvio è lo stesso, ma l'ID utente effettivo non viene ripristinato. Le seguenti definizioni sono usate nel resto di questo documento: Parole riservate sono parole che hanno un significato speciale per la shell. Le seguenti parole sono riconosciute come riservate quando non quotate né la prima parola di un semplice comando o la terza parola di aAstucciooper comando: ! caso fatto elif else esac fi per la funzione se in select then until while {} time UN comando semplice è una sequenza di assegnazioni di variabili opzionali seguite davuoto-parole separate e reindirizzamenti terminati da a operatore di controllo . La prima parola specifica il comando da eseguire e viene passato come argomento zero. Le parole rimanenti vengono passate come argomenti al comando invocato. Il valore di ritorno di a comando semplice è il suo stato di uscita, o 128+ n se il comando è terminato dal segnale n . UN conduttura è una sequenza di uno o più comandi separati dal carattere|. Il formato per una pipeline è tempo -p ! comando | comando2 … . L'output standard di comando è collegato tramite una pipe all'ingresso standard di comando2 . Questa connessione viene eseguita prima di qualsiasi reindirizzamento specificato dal comando. Se la parola riservata! precede una pipeline, lo stato di uscita di quella pipeline è il NOT logico dello stato di uscita dell'ultimo comando. Altrimenti, lo stato della pipeline è lo stato di uscita dell'ultimo comando. La shell attende che tutti i comandi nella pipeline terminino prima di restituire un valore. Se latempo la parola riservata precede una pipeline, il tempo trascorso e il tempo di sistema e utente consumati dalla sua esecuzione vengono segnalati al termine della pipeline. Il-p opzione cambia il formato di output in quello specificato da POSIX. IlFORMATO ORARIO la variabile può essere impostata su una stringa di formato che specifica come devono essere visualizzate le informazioni di temporizzazione. Ogni comando in una pipeline viene eseguito come processo separato (ad esempio in una subshell). UN elenco è una sequenza di una o più condotte separate da uno degli operatori;, &, &&, o||e facoltativamente terminato da uno di;, &, o Di questi operatori di elenchi,&& e|| avere uguale precedenza, seguito da; e&, che hanno uguale precedenza. Una sequenza di uno o più newline può apparire in a elenco invece di un punto e virgola per delimitare i comandi. Se un comando è terminato dall'operatore di controllo&, la shell esegue il comando nel file sfondo in una sottotitola. La shell non attende il completamento del comando e lo stato di ritorno è 0. Comandi separati da a; sono eseguiti sequenzialmente; la shell attende che ciascun comando termini a turno. Lo stato di ritorno è lo stato di uscita dell'ultimo comando eseguito. Gli operatori di controllo&& e|| denotano liste AND e liste OR, rispettivamente. Una lista AND ha la forma command1 && comando2 comando2 viene eseguito se, e solo se, command1 restituisce uno stato di uscita pari a zero. Una lista OR ha il modulo command1 || comando2 comando2 viene eseguito se e solo se command1 restituisce uno stato di uscita diverso da zero. Lo stato di ritorno delle liste AND e OR è lo stato di uscita dell'ultimo comando eseguito nell'elenco. UN comando composto è uno dei seguenti: (elenco) : elenco viene eseguito in una subshell. Le assegnazioni di variabili e i comandi incorporati che influiscono sull'ambiente della shell non rimangono in vigore dopo il completamento del comando. Lo stato di ritorno è lo stato di uscita di elenco . { elenco; } : elenco viene semplicemente eseguito nell'ambiente di shell corrente. elenco deve essere terminato con una nuova riga o punto e virgola. Questo è noto come a comando di gruppo . Lo stato di ritorno è lo stato di uscita di elenco . Si noti che a differenza dei metacaratteri( e), { e} siamo parole riservate e deve avvenire dove è consentito riconoscere una parola riservata. Dal momento che non causano un'interruzione di parole, devono essere separate da elenco da spazi bianchi. ((espressione)) : Il espressione viene valutato in base alle regole descritte in Valutazione aritmetica. Se il valore dell'espressione è diverso da zero, lo stato di ritorno è 0; altrimenti lo stato di ritorno è 1. Questo è esattamente equivalente apermettere ' espressione '. espressione : Restituisce uno stato di 0 o 1 a seconda della valutazione dell'espressione condizionale espressione . Le espressioni sono composte dai primari descritti di seguito Espressioni condizionali. Espansione di parole e espansione del percorso non vengono eseguite sulle parole tra il e; vengono eseguite espansione tilde, espansione di parametri e variabili, espansione aritmetica, sostituzione di comando, sostituzione di processo e rimozione di quote. Quando il== e!= gli operatori sono utilizzati, la stringa a destra dell'operatore è considerata un modello e abbinata secondo le regole descritte inPattern Matching. Il valore restituito è 0 se la stringa corrisponde o non corrisponde al modello, rispettivamente, e 1 altrimenti. Qualunque parte del modello può essere quotata per forzarla ad essere abbinata come una stringa. Le espressioni possono essere combinate utilizzando i seguenti operatori, elencati in ordine decrescente di precedenza: Il&& e|| gli operatori non valutano espressione2 se il valore di espressione1 è sufficiente per determinare il valore di ritorno dell'intera espressione condizionale. In una shell non interattiva o in una shell interattiva in cui il interactive opzione per ilshopt builtin è abilitato, una parola che inizia con# fa sì che quella parola e tutti i restanti caratteri su quella linea vengano ignorati. Una shell interattiva senza ilinteractive l'opzione abilitata non consente commenti. Il interactive l'opzione è attiva per impostazione predefinita nelle shell interattive. citando è usato per rimuovere il significato speciale di alcuni caratteri o parole nella shell. La quotatura può essere utilizzata per disabilitare il trattamento speciale per caratteri speciali, per impedire che le parole riservate vengano riconosciute come tali e per impedire l'espansione dei parametri. Ognuno di metacaratteri elencato sopradefinizioni ha un significato speciale per la shell e deve essere citato se deve rappresentare se stesso. Quando vengono utilizzate le strutture di espansione della cronologia dei comandi, il espansione della storia personaggio, di solito!, deve essere citato per prevenire l'espansione della cronologia. Esistono tre meccanismi di citazione: il personaggio di fuga , virgolette singole e doppie virgolette. Un backslash non quotato () è il personaggio di fuga . Conserva il valore letterale del prossimo personaggio che segue ad eccezione di Racchiudere i caratteri tra virgolette singole mantiene il valore letterale di ciascun carattere tra virgolette. Una virgoletta singola non può verificarsi tra virgolette singole, anche se precedute da una barra rovesciata. Racchiudere i caratteri tra virgolette conserva il valore letterale di tutti i caratteri all'interno delle virgolette, ad eccezione di$, ', e. I personaggi$ e' mantengono il loro significato speciale tra virgolette. Il backslash mantiene il suo significato speciale solo se seguito da uno dei seguenti caratteri:$, ', ', , o I parametri speciali* e@ avere un significato speciale quando si trova tra virgolette. Parole della forma$' stringa 'sono trattati appositamente. La parola si espande a stringa , con caratteri di escape backslash sostituiti come specificato dallo standard ANSI C. Le sequenze di escape di backslash, se presenti, vengono decodificate come segue: Il risultato espanso è quotato in un'unica virgola, come se il simbolo del dollaro non fosse stato presente. Una stringa doppia citazione preceduta da un segno di dollaro ($) causerà la traduzione della stringa in base alle impostazioni locali correnti. Se la locale corrente èC oPOSIX, il simbolo del dollaro viene ignorato. Se la stringa è tradotta e sostituita, la sostituzione è doppia citazione. UN parametro è un'entità che memorizza i valori. Può essere un nome , un numero o uno dei caratteri speciali elencati sottoParametri speciali. Per gli scopi della shell, a variabile è un parametro indicato da a nome . Una variabile ha a valore e zero o più attributi . Gli attributi sono assegnati usando ildichiarare comando incorporato. Un parametro è impostato se è stato assegnato un valore. La stringa nulla è un valore valido. Una volta che una variabile è impostata, può essere disattivata solo usando ilunset comando incorporato. UN variabile può essere assegnato da una dichiarazione del modulo: nome = valore Se valore non è dato, la variabile è assegnata alla stringa nulla. Tutti valori subisce espansione di tilde, espansione di parametri e variabili, sostituzione di comandi, espansione aritmetica e rimozione di quote. Se la variabile ha il suonumero intero insieme di attributi, quindi valore è soggetto ad espansione aritmetica anche se l'espansione $ ((…)) non viene utilizzata. La suddivisione in parole non viene eseguita, ad eccezione di'$@' come spiegato sottoParametri speciali. L'espansione del nome del percorso non viene eseguita. Le dichiarazioni di assegnazione possono anche apparire come argomenti aldichiarare, comporre, esportare, sola lettura, e Locale comandi incorporati. UN parametro posizionale è un parametro denotato da una o più cifre, diverso dalla singola cifra 0. I parametri posizionali vengono assegnati dagli argomenti della shell quando viene richiamato e possono essere riassegnati utilizzando ilimpostato comando incorporato. I parametri posizionali non possono essere assegnati con istruzioni di assegnazione. I parametri posizionali vengono temporaneamente sostituiti quando viene eseguita una funzione di shell. Quando un parametro posizionale composto da più di una cifra viene espanso, deve essere racchiuso tra parentesi graffe. La shell tratta in modo specifico alcuni parametri. Questi parametri possono essere referenziati; l'assegnazione a loro non è consentita. Le seguenti variabili sono impostate dalla shell: BASH: Si espande al nome file completo utilizzato per richiamare questa istanza dibash. BASH_VERSINFO: Una variabile array di sola lettura i cui membri contengono informazioni sulla versione per questa istanza di bash. I valori assegnati ai membri dell'array sono i seguenti: BASH_VERSION: Si espande in una stringa che descrive la versione di questa istanza dibash. COMP_CWORD: Un indice in$ {} COMP_WORDS della parola contenente la posizione corrente del cursore. Questa variabile è disponibile solo nelle funzioni di shell richiamate dalle funzioni di completamento programmabili. COMP_LINE: La riga di comando corrente. Questa variabile è disponibile solo nelle funzioni della shell e nei comandi esterni richiamati dalle funzioni di completamento programmabili. COMP_POINT: L'indice della posizione corrente del cursore rispetto all'inizio del comando corrente. Se la posizione corrente del cursore è alla fine del comando corrente, il valore di questa variabile è uguale a$ {# COMP_LINE}. Questa variabile è disponibile solo nelle funzioni della shell e nei comandi esterni richiamati dalle funzioni di completamento programmabili. COMP_WORDS: Una variabile di matrice costituita dalle singole parole nella riga di comando corrente. Questa variabile è disponibile solo nelle funzioni di shell richiamate dalle funzioni di completamento programmabili. DIRSTACK: Una variabile di matrice che contiene il contenuto corrente dello stack di directory. Le directory vengono visualizzate nello stack nell'ordine in cui sono visualizzate dadirs incorporato. Assegnare ai membri di questa variabile di matrice può essere usato per modificare le directory già nello stack, ma ilpushd epopd i builtin devono essere usati per aggiungere e rimuovere le directory. L'assegnazione a questa variabile non cambierà la directory corrente. SeDIRSTACK non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. EUID: Si espande nell'ID utente effettivo dell'utente corrente, inizializzato all'avvio della shell. Questa variabile è di sola lettura. FUNCNAME: Il nome di qualsiasi funzione di shell attualmente in esecuzione. Questa variabile esiste solo quando è in esecuzione una funzione di shell. Assegnazioni aFUNCNAME non ha alcun effetto e restituisce uno stato di errore. SeFUNCNAME non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. GRUPPI: Una variabile di matrice contenente l'elenco di gruppi di cui l'utente corrente è membro. Assegnazioni aGRUPPI non ha alcun effetto e restituisce uno stato di errore. SeGRUPPI non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. HISTCMD: Il numero di cronologia o l'indice nell'elenco cronologia del comando corrente. SeHISTCMD non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. HOSTNAME: Impostato automaticamente sul nome dell'host corrente. HOSTTYPE: Impostato automaticamente su una stringa che descrive in modo univoco il tipo di macchina su cuibash è 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 linea sequenziale corrente (che inizia con 1) all'interno di uno script o di una funzione. Quando non è in uno script o in una funzione, non è garantito che il valore sostituito sia significativo. SeLINENO non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. MACHTYPE: Impostato automaticamente su una stringa che descrive completamente il tipo di sistema su cuibash è in esecuzione nello standard GNU cpu-company-system formato. L'impostazione predefinita dipende dal sistema. OLDPWD: La precedente directory di lavoro come impostata dalCD comando. OPTARG: Il valore dell'ultimo argomento opzione elaborato dagetopts comando incorporato. OPTIND: L'indice dell'argomento successivo da elaborare dagetopts comando incorporato. OSTYPE: Impostato automaticamente su una stringa che descrive il sistema operativo su cuibash è in esecuzione. L'impostazione predefinita dipende dal sistema. PIPESTATUS: Una variabile di matrice contenente un elenco di valori di stato di uscita dai processi nella pipeline in primo piano eseguita più recentemente, che può contenere solo un singolo comando. PPID: L'ID di processo del genitore della shell. Questa variabile è di sola lettura. PWD: La directory di lavoro corrente impostata dalCD comando. CASUALE: Ogni volta che si fa riferimento a questo parametro, viene generato un numero casuale compreso tra 0 e 32767. La sequenza di numeri casuali può essere inizializzata assegnando un valore a CASUALE. SeCASUALE non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. RISPONDERE: Impostare sulla riga di input letta daleggere comando incorporato quando non vengono forniti argomenti. SECONDI: Ogni volta che si fa riferimento a questo parametro, viene restituito il numero di secondi dall'invocazione della shell. Se un valore è assegnato aSECONDI, il valore restituito su riferimenti successivi è il numero di secondi dall'assegnazione più il valore assegnato. Se SECONDI non è impostato, perde le sue proprietà speciali, anche se viene successivamente ripristinato. SHELLOPTS: Un elenco separato da due punti di opzioni di shell abilitate. Ogni parola nella lista è un argomento valido per il-o opzione per ilimpostato comando incorporato. Le opzioni che appaiono inSHELLOPTS sono quelli riportati come sopra diimposta -o. Se questa variabile è nell'ambiente quandobash si avvia, ogni opzione della shell nella lista sarà abilitata prima di leggere qualsiasi file di avvio. Questa variabile è di sola lettura. SHLVL: Incrementato di uno ogni volta un'istanza dibash è iniziato. UID: Si espande nell'ID utente dell'utente corrente, inizializzato all'avvio della shell. Questa variabile è di sola lettura. Le seguenti variabili sono usate dalla shell. In alcuni casi,bash assegna un valore predefinito a una variabile; questi casi sono noti. BASH_ENV: Se questo parametro è impostato quandobash sta eseguendo uno script di shell, il suo valore è interpretato come un nome di file contenente comandi per inizializzare la shell, come in ~ / .Bashrc . Il valore di BASH_ENV è soggetto all'espansione dei parametri, alla sostituzione dei comandi e all'espansione aritmetica prima di essere interpretato come un nome di file.SENTIERO non è usato per cercare il nome del file risultante. CDPATH: Il percorso di ricerca perCD comando. Questo è un elenco di directory separate da due punti in cui la shell cerca le directory di destinazione specificate daCD comando. Un valore di esempio è ".: ~: / Usr". COLONNE: Usato dalselezionare comando incorporato per determinare la larghezza del terminale durante la stampa degli elenchi di selezione. Imposta automaticamente al ricevimento di un SIGWINCH. COMPREPLY: Una variabile di matrice da cuibash legge i possibili completamenti generati da una funzione di shell richiamata dalla funzione di completamento programmabile. FCEDIT: L'editor predefinito perfc comando incorporato. FIGNORE: Un elenco di suffissi separati da due punti da ignorare quando si esegue il completamento del nome file. Un nome file il cui suffisso corrisponde a una delle voci inFIGNORE è escluso dalla lista dei nomi dei file corrispondenti. Un valore di esempio è ".o: ~". GLOBIGNORE: Un elenco di pattern separati da due punti che definiscono l'insieme di nomi di file da ignorare con l'espansione del percorso. Se un nome file che corrisponde a un modello di espansione del nome percorso corrisponde anche a uno degli schemi inGLOBIGNORE, viene rimosso dall'elenco di partite. HISTCONTROL: Se impostato su un valore di ignorespace , linee che iniziano con aspazio il carattere non è inserito nella lista della storia. Se impostato su un valore di ignoredups , le linee che corrispondono all'ultima riga della cronologia non vengono inserite. Un valore di ignoreboth combina le due opzioni. Se non impostato o impostato su un valore diverso da quelli precedenti, tutte le righe lette dal parser vengono salvate nell'elenco della cronologia, in base al valore diHISTIGNORE. La funzione di questa variabile è sostituita da HISTIGNORE. La seconda riga e le successive di un comando composto su più righe non vengono testate e vengono aggiunte alla cronologia indipendentemente dal valore diHISTCONTROL. HISTFILE: Il nome del file in cui è salvata la cronologia dei comandi. Il valore predefinito è ~ / .Bash_history . Se non impostato, la cronologia dei comandi non viene salvata all'uscita di una shell interattiva. HISTFILESIZE: Il numero massimo di righe contenute nel file di cronologia. Quando a questa variabile viene assegnato un valore, il file di cronologia viene troncato, se necessario, per contenere non più di quel numero di righe. Il valore predefinito è 500. Il file di cronologia viene anche troncato a queste dimensioni dopo averlo scritto quando una shell interattiva viene chiusa. HISTIGNORE: Elenco di schemi separati da due punti utilizzati per decidere quali righe di comando devono essere salvate nell'elenco cronologico. Ogni modello è ancorato all'inizio della riga e deve corrispondere alla linea completa (non implicita '*'è aggiunto). Ogni modello viene testato rispetto alla linea dopo i controlli specificati daHISTCONTROL sono applicate. Oltre ai normali caratteri di corrispondenza del modello di shell, '&'corrisponde alla precedente cronologia. '&'può essere sfuggito utilizzando una barra rovesciata; il backslash viene rimosso prima di tentare una corrispondenza. La seconda riga e le successive di un comando composto su più righe non vengono testate e vengono aggiunte alla cronologia indipendentemente dal valore diHISTIGNORE. HISTSIZE: Il numero di comandi da ricordare nella cronologia dei comandi. Il valore predefinito è 500. CASA: La home directory dell'utente corrente; l'argomento predefinito perCD comando incorporato. Il valore di questa variabile viene anche utilizzato quando si esegue l'espansione tilde. HOSTFILE: 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 completamenti del nome host può essere modificato mentre la shell è in esecuzione; al successivo tentativo di completamento dell'hostname dopo la modifica del valore,bash aggiunge il contenuto del nuovo file all'elenco esistente. Se HOSTFILE è impostato, ma non ha valore,bash tenta di leggere / etc / hosts per ottenere l'elenco dei possibili completamenti del nome host. quandoHOSTFILE non è impostato, l'elenco dei nomi host viene cancellato. IFS: Il Separatore di campo interno è usato per la divisione delle parole dopo l'espansione e per dividere le linee in parole con illeggere comando incorporato. Il valore predefinito è " IGNOREEOF: Controlla l'azione di una shell interattiva al ricevimento di unEOF carattere come unico input. Se impostato, il valore è il numero di consecutiviEOF caratteri che devono essere digitati come i primi caratteri su una riga di input primabash uscite. Se la variabile esiste ma non ha un valore numerico o non ha valore, il valore predefinito è 10. Se non esiste,EOF indica la fine dell'input alla shell. INPUTRC: Il nome del file perlinea di lettura file di avvio, sovrascrivendo il valore predefinito di ~ / .Inputrc . LANG: Utilizzato per determinare la categoria locale per qualsiasi categoria non specificatamente selezionata con una variabile che inizia conLC_. LC_ALL: Questa variabile sostituisce il valore diLANG e qualsiasi altroLC_ variabile che specifica una categoria locale. LC_COLLATE: Questa variabile determina l'ordine di confronto utilizzato quando si ordinano i risultati dell'espansione del percorso e determina il comportamento delle espressioni di intervallo, delle classi di equivalenza e delle sequenze di raggruppamento all'interno dell'espansione del percorso e della corrispondenza del modello. LC_CTYPE: Questa variabile determina l'interpretazione dei caratteri e il comportamento delle classi di caratteri all'interno dell'espansione del percorso e della corrispondenza del modello. LC_MESSAGES: Questa variabile determina le impostazioni locali utilizzate per tradurre stringhe tra virgolette precedute da a$. LC_NUMERIC: Questa variabile determina la categoria di impostazioni locali utilizzata per la formattazione dei numeri. LINEE: Usato dalselezionare comando incorporato per determinare la lunghezza della colonna per la stampa degli elenchi di selezione. Imposta automaticamente al ricevimento di un SIGWINCH. MAIL: Se questo parametro è impostato su un nome di file e ilMAILPATH la variabile non è impostata,bashinforma l'utente dell'arrivo della posta nel file specificato. MAILCHECK: 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 il prompt primario. Se questa variabile non è impostata o impostata su un valore che non è un numero maggiore o uguale a zero, la shell disabilita il controllo della posta. MAILPATH: Un elenco di nomi file separati da due punti da controllare per la posta. Il messaggio da stampare quando arriva la posta in un determinato file può essere specificato separando il nome del file dal messaggio con un '?'. Se utilizzato nel testo del messaggio,$_ si espande al nome del file di posta corrente. Esempio: MAILPATH = '/ var / mail / bfox? "Hai mail": ~ / shell-mail? "$ _ Ha mail!"'
bash fornisce un valore predefinito per questa variabile, ma il percorso dei file di posta dell'utente che utilizza dipende dal sistema (/ var / mail /$ USER). OPTERR: Se impostato sul valore 1,bash visualizza i messaggi di errore generati dalgetopts comando incorporato.OPTERR è inizializzato a 1 ogni volta che viene invocata la shell o viene eseguito uno script di shell. SENTIERO: Il percorso di ricerca per i comandi. È una lista di directory separate da due punti in cui la shell cerca i comandi. Il percorso predefinito dipende dal sistema e viene impostato dall'amministratore che installabash. Un valore comune è "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :." ". POSIXLY_CORRECT: Se questa variabile si trova nell'ambiente quandobash inizia, la shell entra modalità posix prima di leggere i file di avvio, come se il--posix l'opzione di invocazione era stata fornita. Se è impostato mentre la shell è in esecuzione,bash consente modalità posix come se il comando set -o posix era stato giustiziato PROMPT_COMMAND: Se impostato, il valore viene eseguito come comando prima di emettere ciascun prompt primario. PS1: Il valore di questo parametro viene espanso e utilizzato come stringa di prompt primaria. Il valore predefinito è " S- v $''. PS2: Il valore di questo parametro è espanso come conPS1 e usato come stringa di prompt secondaria. L'impostazione predefinita è "> ''. PS3: Il valore di questo parametro viene utilizzato come prompt perselezionare comando. PS4: Il valore di questo parametro è espanso come conPS1, e il valore viene stampato prima di ogni comandobash visualizza durante una traccia di esecuzione. Il primo personaggio diPS4 viene replicato più volte, se necessario, per indicare più livelli di riferimento indiretto. L'impostazione predefinita è "+ ''. FORMATO ORARIO: Il valore di questo parametro viene utilizzato come stringa di formato che specifica come le informazioni di temporizzazione per le pipeline hanno il prefisso contempo la parola riservata dovrebbe essere visualizzata. Il % il personaggio 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 opzionali. L'opzionale p è una cifra che specifica il precisione , il numero di cifre frazionarie dopo un punto decimale. Un valore pari a 0 non genera alcun punto decimale o frazione. Al massimo tre posizioni dopo la virgola decimale può essere specificato; valori di p maggiori di 3 vengono cambiati in 3. Se p non è specificato, viene utilizzato il valore 3. L'opzionalel specifica un formato più lungo, inclusi i minuti, del modulo MM m SS . FF S. Il valore di p determina se la frazione è inclusa o meno. Se questa variabile non è impostata,bash agisce come se avesse il valore $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Se il valore è nullo, non viene visualizzata alcuna informazione di temporizzazione. Una nuova riga finale viene aggiunta quando viene visualizzata la stringa di formato. TMOUT: Se impostato su un valore maggiore di zero,TMOUT viene considerato come il timeout predefinito perleggere incorporato. Ilselezionare il comando termina se l'input non arriva dopoTMOUT secondi quando l'input proviene da un terminale.In una shell interattiva, il valore viene interpretato come il numero di secondi di attesa per l'input dopo l'emissione del prompt primario.bash termina dopo aver atteso quel numero di secondi se l'input non arriva. auto_resume: Questa variabile controlla il modo in cui la shell interagisce con l'utente e il controllo del lavoro. Se questa variabile è impostata, i comandi semplici di una sola parola senza reindirizzamenti vengono considerati candidati per la ripresa di un lavoro interrotto esistente. Non è permessa alcuna ambiguità. Se c'è più di un lavoro che inizia con la stringa digitata, viene selezionato il lavoro più recente a cui si accede. Il nome di un lavoro interrotto, in questo contesto, è la riga di comando utilizzata per avviarlo. Se impostato sul valore esatto , la stringa fornita deve corrispondere esattamente al nome di un lavoro interrotto; se impostato su sottostringa , la stringa fornita deve corrispondere a una sottostringa del nome di un lavoro interrotto. Il sottostringa valore fornisce funzionalità analoghe a%? identificatore di lavoro. Se impostato su qualsiasi altro valore, la stringa fornita deve essere un prefisso del nome di un lavoro interrotto; questo fornisce funzionalità analoghe a% identificatore di lavoro. histchars: I due o tre caratteri che controllano l'espansione della cronologia e la tokenizzazione. Il primo personaggio è il espansione della storia carattere, il carattere che segnala l'inizio di un'espansione della cronologia, normalmente '!'. Il secondo personaggio è il sostituzione rapida carattere, che è usato come abbreviazione per rieseguire il comando precedente inserito, sostituendo una stringa con un'altra nel comando. L'impostazione predefinita è '^'. Il terzo carattere opzionale è il carattere che indica che il resto della riga è un commento quando viene trovato come il primo carattere di una parola, normalmente '#'. Il carattere del commento cronologico causa la sostituzione della cronologia per le parole rimanenti sulla riga. Non necessariamente causa il parser della shell per trattare il resto della linea come un commento. bash fornisce variabili di array unidimensionali. Qualsiasi variabile può essere usata come una matrice; il dichiarare builtin dichiarerà esplicitamente un array. Non esiste un limite massimo per le dimensioni di un array né alcun requisito che i membri vengano indicizzati o assegnati in modo contiguo. Le matrici sono indicizzate utilizzando numeri interi e sono basate su zero. Un array viene creato automaticamente se viene assegnata una variabile all'utilizzo della sintassi nome deponente = valore . Il deponente viene trattato come un'espressione aritmetica che deve valutare un numero maggiore o uguale a zero. Per dichiarare esplicitamente un array, utilizzaredichiarare -a nome . dichiarare -a nome deponente è anche accettato; il deponente è ignorato Gli attributi possono essere specificati per una variabile di matrice usando ildichiarare e sola lettura builtins. Ogni attributo si applica a tutti i membri di un array. Gli array sono assegnati all'utilizzo di assegnazioni composte del modulo nome =(valore 1 … valore n ), dove ciascuno valore è della forma deponente = stringa . Solo stringa è obbligatorio. Se vengono fornite le parentesi e i pedici opzionali, viene assegnato quell'indice; altrimenti l'indice dell'elemento assegnato è l'ultimo indice assegnato dall'istruzione più uno. L'indicizzazione inizia da zero. Questa sintassi è accettata anche daldichiarare incorporato. Ai singoli elementi dell'array può essere assegnato l'uso di nome deponente = valore sintassi. Qualsiasi elemento di una matrice può essere referenziato usando $ { nome deponente }. Le parentesi sono necessarie per evitare conflitti con l'espansione del percorso. Se deponente è@ o*, la parola si espande a tutti i membri di nome . Questi pedici differiscono solo quando la parola appare tra virgolette. Se la parola è doppia citazione, $ { nome *} si espande in una singola parola con il valore di ciascun membro dell'array separato dal primo carattere delIFS variabile speciale e $ { nome @} espande ogni elemento di nome a una parola separata. Quando non ci sono membri dell'array, $ { nome @} non si espande. Questo è analogo all'espansione dei parametri speciali* e@. ${# nome deponente } si espande fino alla lunghezza di $ { nome deponente }. Se deponente è* o@, l'espansione è il numero di elementi nella matrice. Il riferimento a una variabile di matrice senza un pedice è equivalente all'elemento di rife
definizioni
Parole riservate
Shell Grammar: semplici comandi
Condotte
elenchi
Comandi composti
Commenti
citando
parametri
Parametri posizionali
Parametri speciali
Shell Variables
Array