I comandi interni sono quelli eseguiti direttamente dalla shell, come se si trattasse di funzioni. La tabella (seguente) mostra l'elenco dei comandi a disposizione.
Nelle sezioni seguenti sono descritti i comandi interni di bash in ordine alfabetico.
:[<argomenti>]
Ciò che inizia con il simbolo : non viene eseguito. Si ottiene solo l'espansione degli argomenti e l'esecuzione della ridirezione. Il valore restituito alla fine è sempre zero.
. <file-script> [<argomenti>] |
source <file-script> [<argomenti>]
Vengono letti ed eseguiti i comandi contenuti nel file indicato. Se il nome del file non fa riferimento a un percorso, questo viene cercato all'interno dei vari percorsi indicati all'interno della variabile PATH. Se vengono forniti degli argomenti a questo script, questi diventano i relativi parametri posizionali. Il valore restituito dallo script è:
alias [<nome>[=<valore>]... ]
Il comando alias senza argomenti, emette attraverso lo
standard output la lista degli alias nella forma
<nome>=<valore>.
Se non viene indicato il valore dell'alias,
ne viene emesso il nome e il contenuto.
La coppia <nome>=<valore>
deve essere scritta senza lasciare spazi prima e dopo
del segno =.
In particolare, se si lascia uno spazio prima dell'indicazione
del valore, questo verrà interpretato come
il nome di un altro alias.
Il comando alias restituisce
il valore
bg [<specificazione-del-job>]
Mette in background il job indicato, come se fosse stato avviato con un & finale. Se non viene indicato il job, viene messo in background quello corrente, dal punto di vista della shell. Se l'operazione riesce, il valore restituito è zero.
Il controllo sui job è descritto nella sezione `Controllo dei job'.
bind [
-
m <mappa-dei-tasti>] [-
ldv] [-
q <funzione>]
bind [
-
m <mappa-dei-tasti>] -
f file
bind [
-
m <mappa-dei-tasti>] <sequenza-di-tasti>:<funzione>
Visualizza o modifica la configurazione legata all'uso della tastiera attraverso la libreria readline. La sintassi è la stessa di quella utilizzata per il file di configurazione ~/.inputrc.
-
m <mappa-dei-tasti>
Usa la mappa della tastiera indicata per nome. I nomi a disposizione sono: emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command e vi-insert. In particolare, vi equivale a vi-command e emacs equivale a emacs-standard.
-
l
Elenca i nomi di tutte le funzioni di readline.
-
v
Elenca i nomi delle funzioni attuali e i loro collegamenti.
-
d
Scarica i nomi delle funzioni e i collegamenti in modo che possano essere riletti.
-
f file
Legge le informazioni legate all'uso della tastiera dal file indicato.
-
q <funzione>
Emette la sequenza di tasti connessa con la funzione indicata.
Il valore restituito è zero, a meno che non siano fornite opzioni sconosciute.
break [n]
Interrompe un ciclo for, while o until. Se viene specificato il valore numerico n, l'interruzione riguarda n livelli. Il valore n deve essere maggiore o uguale ad 1. Se n è maggiore dei cicli annidati in funzione, vengono semplicemente interrotti tutti. Il valore restituito è zero, a meno che non ci sia alcun ciclo da interrompere.
builtin <comando-interno> [<argomenti>]
Esegue il comando interno indicato passandogli
gli eventuali argomenti.
Può essere utile quando si vuole definire
una funzione con lo stesso nome di un comando interno.
Restituisce il valore
cd [<directory>]
Cambia la directory corrente. Se non viene specificata la destinazione, si intende la directory contenuta nella variabile HOME. Il funzionamento di questo comando può essere alterato dal contenuto della variabile CDPATH che può contenere una serie di percorsi di ricerca per la directory su cui ci si vuole spostare. Di norma, questa variabile è opportunamente vuota, in modo da fare semplicemente riferimento alla directory corrente.
command [
-
pVv] <comando> [<argomento>... ]
Esegue un comando con gli eventuali argomenti. In questo caso, per comando si intende un comando interno oppure un programma. Sono escluse le funzioni.
-
p
La ricerca del programma avviene all'interno di una serie di percorsi di ricerca predefiniti e non quindi in base al contenuto di PATH.
-
v
Emette il nome del programma, così come è stato fornito.
-
V
Emette il nome del programma, così come è stato fornito, oltre ad altre informazioni.
-
v o
-
V, il valore restituito è zero nel caso che il programma sia
stato trovato, altrimenti 1.
continue [n]
Riprende, a partire dalla successiva iterazione, un ciclo for, while o until. Se viene specificato il valore numerico n, il salto riguarda n livelli. Il valore n deve essere maggiore o uguale ad 1. Se n è maggiore dei cicli annidati in funzione, si fa riferimento al ciclo più esterno. Il valore restituito è zero, a meno che non ci sia alcun ciclo da riprendere.
declare [<opzioni>] [<nome>[=<valore>]]
Permette di dichiarare delle variabili ed eventualmente anche di attribuirgli loro dei valori. Se non vengono forniti nomi di variabili da creare, vengono visualizzati quelli esistenti con i loro valori.
-
a
Indica che si tratta di un array.
-
f
Utilizza solo nomi di funzione.
-
r
Fa in modo che le variabili indicate siano disponibili solo in lettura, e cioè che sia impedita la ulteriore assegnazione di valori.
-
x
Fa in modo che le variabili indicate siano rese disponibili anche ai programmi eseguiti a partire dalla attuale sessione di funzionamento della shell. Si dice che le variabili vengono esportate.
-
i
La variabile viene trattata come un intero e di conseguenza, prima di assegnarle un valore viene eseguita una valutazione di tipo aritmetico.
Utilizzando il segno + al posto del trattino che contrassegna le opzioni, si intende la disattivazione dell'opzione stessa.
Il valore restituito è zero, a meno che non siano stati commessi degli errori.
dirs [
-
l] [+/-
n]
Visualizza l'elenco delle directory memorizzate nello stack apposito. Per salvare una directory nello stack si utilizza il comando pushd, mentre per tornare alla directory precedentemente salvata si utilizza il comando popd.
+n
Mostra solo l'n-esimo elemento dello stack a partire dall'alto. L'ultimo elemento inserito si raggiunge con +0.
-
n
Mostra solo l'n-esimo elemento dello
stack a partire dal basso.
Il primo elemento inserito si raggiunge con
-
.
-
l
Mostra un elenco lungo senza abbreviare i percorsi con il simbolo ~.
Restituisce zero a meno che non siano stati commessi degli errori.
echo [
-
neE] [<argomento>... ]
Emette gli argomenti separati da uno spazio. Restituisce sempre il valore zero.
-
n
Sopprime il carattere di newline (
-
e
Abilita l'interpretazione delle sequenze di escape descritte più avanti.
-
E
Disabilita l'interpretazione delle sequenze di escape anche dove questo potrebbe costituire la modalità predefinita.
echo riconosce alcune sequenze di escape che possono essere utili per formattare il testo da visualizzare.
\a avvisatore acustico;
\b backspace;
\c eliminazione dei caratteri newline
(
\f form feed o
\n newline o
\r carriage return o
\t tabulazione (orizzontale) o
\v tabulazione verticale;
\\ barra inclinata rovescia;
\ooo il carattere il cui codice ottale corrisponde al numero indicato da ooo.
enable [
-
n] [-
all] [<nome>... ]
Abilita o disabilita i comandi interni. Ciò permette l'esecuzione di un programma con lo stesso nome di un comando interno, senza dover indicare il percorso completo di questo programma.
-
n
Disabilita i nomi indicati. Se non viene usata questa opzione si intende che i nomi indicati vengono abilitati. Se non viene indicato alcun nome di comando, con questa opzione si ottiene l'elenco di tutti i comandi interni disabilitati, senza questa opzione si ottiene l'elenco dei comandi interni abilitati.
-
a | -
all
Se questa opzione viene usata da sola, si ottiene l'elenco di tutti i comandi interni con l'indicazione di quelli disabilitati.
Restituisce il valore zero a meno che non sia stato fornito un nome di comando interno inesistente.
eval [<argomento>... ]
Esegue gli argomenti come parte di un unico comando.
Restituisce il valore restituito dal comando
rappresentato dagli argomenti.
Se non vengono indicati argomenti, o se questi sono
vuoti, restituisce
exec [[
-
] <comando> [<argomenti>]]
Se viene specificato un comando (un programma), questo viene eseguito rimpiazzando la
shell, in modo da non generare un nuovo processo.
Se sono stati indicati degli argomenti, questi vengono passati regolarmente al comando.
Se prima del comando si inserisce un trattino (-
), l'argomento zero
passato al comando conterrà un trattino.
Se il comando non può essere eseguito per qualsiasi motivo e ci si trova all'interno di una
shell non interattiva, questo termina l'esecuzione restituendo una segnalazione
di errore.
<!> Il fatto di rimpiazzare la shell implica che al termine dell'esecuzione del programma, non ci sarà più la shell. Se si trattava di una finestra di terminale, questa potrebbe semplicemente chiudersi, oppure, se si trattava di una shell di login potrebbe essere richiesto il login.
exit [n]
Termina l'esecuzione della shell restituendo il valore n. Se viene omessa l'indicazione esplicita del valore da restituire, viene utilizzato quello dell'ultimo comando eseguito.
export [
-
nf] [<nome>[=<parola>]... ]
export
-
p
Le variabili elencate (o le funzioni) vengono segnate per l'esportazione, nel senso che vengono trasferite all'ambiente dei programmi eseguiti successivamente all'interno della shell stessa.
-
f
I nomi si riferiscono a funzioni.
-
p
Vengono elencati i nomi esportati (variabili e funzioni). È il comportamento predefinito quando non sono stati indicati dei nomi.
-
n
Elimina la proprietà di esportazione agli elementi elencati.
Restituisce zero a meno che non siano stati commessi degli errori.
fc [
-
e <editor>] [-
nlr] [<primo>] [<ultimo>]
fc
-
s [<pattern>=<replace>] [<comando>]
Si tratta di un modo per recuperare una serie di comandi dallo storico per modificarli (correggerli) ed eseguirli nuovamente.
fg [<job>]
Pone il job indicato in foreground, ovvero in primo piano. Se non viene specificato il job, si intende quello attuale, ovvero, l'ultimo a essere stato messo in background.
Il controllo sui job è descritto nella sezione `Controllo dei job'.
getopts <stringa-di-opzioni> <nome-di-variabile> [<argomenti>]
Viene usato dagli script di shell per analizzare i parametri posizionali. La stringa di opzioni contiene le lettere delle opzioni che devono essere riconosciute. Se una lettera è seguita da un :, l'opzione si aspetta di avere un argomento, che dovrà essere separato da essa da spazi bianchi. Ogni volta che viene eseguito, getopts pone la successiva opzione nella variabile di shell indicata, inizializzandola se non esiste, e l'indice del prossimo argomento che deve essere elaborato, nella variabile OPTIND. OPTIND viene inizializzato a 1 ogni volta che la shell o uno script di shell viene chiamato. Quando una opzione richiede un argomento, getopts pone quell'argomento nella variabile OPTARG. La shell non azzera OPTIND automaticamente; questa variabile deve essere azzerata manualmente tra più chiamate a getopts dentro la stessa esecuzione della shell, se deve essere usato un nuovo insieme di parametri.
getopts può informare degli errori in due modi. Se il primo carattere della stringa di opzioni è :, viene usata una informazione di errore silenzioza. Nelle operazioni normali i messaggi diagnostici sono emessi quando sono incontrate opzioni errate o mancano gli argomenti delle opzioni. Se la variabile OPTERR è posta a zero, nessun messaggio di errore sarà mostrato, perfino se il primo carattere della stringa di opzioni non è :.
Se viene incontrata una opzione errata, getopts assegna alla variabile indicata un punto interrogativo (?), la variabile OPTARG viene eliminata e viene emesso un messaggio di errore. Se getopts funziona in modalità silenziosa, il carattere di opzione trovato viene assegnato a OPTARG e non viene emesso alcun avvertimento.
Se un argomento richiesto non viene trovato, e getopts non funziona in modalità silenziosa, viene assegnato un punto interrogativo alla variabile indicata, OPTARG viene eliminata e viene emesso un messaggio di errore. Se getopts funziona in modalità silenzioza, allora un carattere : viene assegnato alla variabile indicata e a OPTARG viene assegnato il carattere di opzione trovato.
L'esempio seguente mostra un semplice script in grado di mostrare la
scansione delle opzioni per mezzo di getopts.
Si possono utilizzate opzioni da -
a a -
g; le
prime tre richiedono un argomento.
#!/bin/bash
while getopts a:b:c:defg OPZIONE
do
echo "È stata indicata l'opzione \"${OPZIONE}\" con l'argomento ${OPTARG}."
done
Di solito, il comando getopts viene utilizzato
all'interno di un ciclo while per analizzare
le varie opzioni e procedere con le varie azioni da compiere
di conseguenza.
Nell'esempio seguente, possono essere utilizzate opzioni da
-
a a -
g; le prime tre
richiedono un argomento, e si fa in modo che
getopts non emetta segnalazioni di errore
(la stringa di opzioni inizia con un simbolo di due punti).
#!/bin/bash
while getopts :a:b:c:defg OPZIONE
do
case $OPZIONE in
a) echo "È stata indicata l'opzione \"a\" con l'argomento $OPTARG." ;;
b) echo "È stata indicata l'opzione \"b\" con l'argomento $OPTARG." ;;
c) echo "È stata indicata l'opzione \"c\" con l'argomento $OPTARG." ;;
d) echo "È stata indicata l'opzione \"d\" che non richiede argomento." ;;
e) echo "È stata indicata l'opzione \"e\" che non richiede argomento." ;;
f) echo "È stata indicata l'opzione \"f\" che non richiede argomento." ;;
g) echo "È stata indicata l'opzione \"g\" che non richiede argomento." ;;
*) echo "È stata indicata un'opzione illegale." ;;
esac
done
hash [
-
r] [<comando>... ]
Per ciascun comando indicato, viene determinato e memorizzato il percorso completo.
-
r
Fa sì che lo shell perda le locazioni memorizzate.
Se non viene dato alcun argomento, viene emessa l'informazione circa i comandi memorizzati.
Restituisce
help [<modello>]
Mostra una guida sui comandi interni. Se viene fornito il modello, si ottiene una guida dettagliata su tutti i comandi che combaciano con il modello stesso, altrimenti viene emessa una lista dei comandi interni.
Il valore restituito è zero a meno che il modello fornito non combaci con alcun comando.
history [n]
history
-
rwan [<file-storico>]
Se non viene indicata alcuna opzione, emette la lista dello storico dei comandi con i numeri di riga. Le righe segnate con un asterisco sono state modificate. Con argomento n, vengono elencate solo le ultime n righe. Se viene fornito un argomento che non sia un'opzione, questo viene usato come nome del file storico, altrimenti viene usato il valore di HISTFILE. Le opzioni, se fornite, hanno i seguenti significati:
-
a
Aggiunge le righe di storico nuove, ovvero quelle inserite dall'inizio della sessione corrente di bash, al file storico.
-
n
Inserisce le righe dello storico non ancora lette dal file storico, nella lista dello storico corrente. Queste sono le linee aggiunte al file storico dall'inizio della sessione corrente di bash.
-
r
Legge il contenuto del file storico e lo usa come storico corrente.
-
w
Scrive lo storico corrente sul file storico sovrascrivendo il contenuto del file stesso.
Restituisce il valore zero a meno che siano stati commessi degli errori oppure ci siano stati dei problemi di lettura o scrittura con il file storico.
jobs [
-
lnp] [<job>... ]
jobs [
-
x <comando> [<argomenti>... ]
La prima forma elenca i job attivi.
-
l
Elenca i numeri di processo, o PID, in aggiunta alle normali informazioni.
-
p
Elenca solo il PID del primo processo del gruppo di quelli appartenenti al job.
-
n
Mostra solo i job che hanno cambiato stato dall'ultima notifica.
Se viene indicato esplicitamente un job, l'elenco risultante sarà ristretto alle sole informazioni su quel job.
Restituisce zero a meno che sia incontrata una opzione non ammessa o sia stata fornita l'indicazione di un job impossibile.
Il controllo sui job è descritto nella sezione `Controllo dei job'.
kill [
-
s <segnale> | -
s<segnale>] [<pid> | <job>]...
kill [
-
l [<numero-del-segnale>]
Invia il segnale indicato al processo identificato dal numero del PID o dal
job.
Il segnale viene definito attraverso un nome, come per esempio SIGKILL o un
numero di segnale.
Il nome del segnale non è sensibile alla differenza tra maiuscole e minuscole e può essere
indicato anche senza il prefisso SIG.
Se non viene indicato il tipo di segnale da inviare, si intende SIGTERM.
Un argomento -
l elenca i nomi dei segnali corrispondenti ai numeri
eventualmente indicati.
Restituisce
let <argomento> [<argomento>... ]
Permette di eseguire operazioni aritmetiche con l'utilizzo di variabili. Ogni argomento è una espressione aritmetica che deve essere risolta. Se l'ultimo argomento viene risolto generando un risultato pari a zero, let restituisce 1, altrimenti restituisce zero.
$
let PIPPO=123+45
Calcola la somma di 123 e 45 e la assegna alla variabile PIPPO.
$
echo $PIPPO
168
---------
$
let PIPPO1=123+45 PIPPO2=256+64
Calcola la somma di 123 e 45 assegnandola alla variabile PIPPO1 e la la somma di 256 e 64 assegnandola alla variabile PIPPO2.
$
let PIPPO1=PIPPO1+PIPPO2
Somma il contentuo della PIPPO1 con quello di PIPPO2 ed assegna il risultato alla PIPPO1 stessa.
$
echo $PIPPO1
478
local [<variabile-locale>[=<valore>]... ]
Per ogni argomento, crea una variabile locale con il nome indicato e gli assegna il valore che appare dopo il simbolo =. Prima e dopo il simbolo = non si possono lasciare spazi. Quando il comando local viene usato dentro una funzione, fa sì che la variabile abbia una visibilità ristretta a quella funzione e ai suoi discendenti. Se non viene indicato alcun argomento, local emette un elenco di variabili locali nello standard output. è un errore usare local quando non ci si trova all'interno di una funzione. Restituisce zero a meno che local sia usato fuori da una funzione, o siano stati fatti altri errori.
logout
Termina l'esecuzione di una shell di login.
popd [+/
-
n]
Elimina degli elementi dallo stack delle directory. Se non vengono forniti argomenti, elimina la directory in cima allo stack (l'ultimo a essere stato inserito), ed esegue un cd verso quella directory.
+n
Preleva solo l'n-esimo elemento dello stack a partire dall'alto. L'ultimo elemento inserito si raggiunge con +0.
-
n
Preleva solo l'n-esimo elemento dello
stack a partire dal basso.
Il primo elemento inserito si raggiunge con
-
0.
Se il comando popd viene eseguito
con successo, viene anche effettuato un
dirs, e il valore restituito
è zero.
popd restituisce
pushd [<directory>] | pushd [+/
-
n]
Aggiunge una directory in cima allo stack delle directory, oppure sposta gli elementi e alla fine esegue un cd verso quella directory che si trova in cima. Senza argomenti, scambia le due directory in cima e restituisce zero, a meno che lo stack sia vuoto.
+n
Ruota lo stack in modo che l'n-esima directory a partire dall'altro (cioè a partire dall'ultima) vada in cima.
-
n
Ruota lo stack in modo che l'n-esima directory a partire dal basso (cioè a partire dalla prima) vada in cima.
<directory>
L'indicazione esplicita di una directory, aggiunge questa directory in cima allo stack rendendola anche la nuova directory corrente.
Se il comando ha successo, viene anche effettuato un dirs. Se viene usata la prima forma, pushd restituisce zero a meno che il cd fallisca. Con la seconda forma, pushd restituisce zero a meno che non sia specificato un elemento non esistente nello stack, o il cambiamento di directory fallisca.
pwd
Emette il percorso assoluto della directory
corrente.
Se è stato usato il comando interno
set -
P, i percorsi che utilizzano
link simbolici vengono tradotti in percorsi
reali.
Restituisce zero a meno che non si verifichi un errore
un errore mentre si legge il percorso della
directory corrente.
read [
-
a <array>] [-
p <prompt>] [-
r] [<variabile>... ]
Viene letta una riga dallo standard input, e la prima parola di questa riga viene assegnata alla prima variabile indicata come argomento, la seconda parola alla seconda variabile, e così via. All'ultima variabile indicata nella riga di comando viene assegnato la parte restante della riga dello standard input che non è stata diversamente distribuita. Per determinare la separazione in parole della riga dello standard input si utilizzano i caratteri contenuti nella variabile IFS. Se non vengono fornite variabili a cui assegnare questi dati, la riga letta viene assegnata alla variabile REPLY.
Restituisce zero, a meno che non sia incontrata la fine del file prima di poter leggere la riga dello standard input.
-
r
Utilizzando questa opzione, la barra inclinata rovescia (\)
seguita dal carattere newline (
-
a <array>
Se viene fornita questa opzione, assieme al nome di una variabile array, si ottiene l'assegnazione sequenziale delle parole all'interno degli elementi di questo array (partendo dalla posizione 0).
-
p <prompt>
Permette di definire un prompt. Questo viene visualizzato solo se l'input proviene da un terminale.
readonly [<variabile>... ]
readonly [
-
f <funzione>... ]
readonly
-
p
Le variabili o le funzioni indicate vengono marcate per la sola
lettura e i valori di queste non possono essere cambiati
dalle assegnazioni successive.
Se non viene fornito alcun argomento, e se viene
indicata l'opzione -
p,
viene emessa una lista
di tutti i nomi a sola lettura.
Un argomento -
-
disabilita il controllo delle opzioni per il resto
degli argomenti.
Restituisce zero a meno che non siano commessi
degli errori.
return [n]
Termina l'esecuzione di una funzione restituendo
il valore n.
Se viene omessa l'indicazione di questo valore,
la funzione che termina restituisce il valore
restituito dall'ultimo comando eseguito
al suo interno.
Se il comando return viene utilizzato
al di fuori di una funzione, ma sempre all'interno
di uno script, termina l'esecuzione dello
script stesso.
In particolare, se questo script era stato
eseguito attraverso il comando .,
ovvero source, viene restituito
un valore secondo le stesse regole della
conclusione di una funzione,
se invece questo script era stato
eseguito in maniera diversa, il valore restituito
è sempre
set [<flag>] [<argomento>... ]
Questo comando viene usato per modificare una serie molto lunga di modalità di funzionamento. Segue l'elenco dei flag.
-
a
Le variabili, che vengono modificate o create, vengono marcate automaticamente per l'esportazione verso ambiente per i comandi avviati attraverso la shell.
-
b
Fa in modo che lo stato di un job in background terminato, venga riportato immediatamente. Altrimenti, questa informazione viene emessa subito prima del successivo prompt primario.
-
e
Termina immediatamente se un comando qualunque conclude la sua esecuzione restituendo uno stato diverso da zero. La shell non esce se il comando che fallisce è parte di un ciclo until o while, di una istruzione if, di una lista &&: o ||, o se il valore restituito dal comando è stato invertito per mezzo di !.
-
f
Disabilita l'espansione di percorso (globbing).
-
h
Localizza e memorizza la posizione dei programmi alla prima occasione in cui questi vengono eseguiti, in modo da rendere più rapido un eventuale nuovo avvio successivo.
-
k
Tutti gli argomenti in forma di istruzione di assegnazione sono collocati nell'ambiente per il comando, non soltanto quelli che precedono il nome del comando stesso.
-
m
Il controllo dei job è attivato. Questo flag è attivo in modo predefinito per le shell interattive.
-
n
Legge i comandi, ma non li esegue. Ciò può essere usato per controllare gli errori di sintassi di uno script di shell. Questo valore viene ignorato dalle shell interattive.
-
o <nome-di-opzione>
Permette di indicare una serie di opzioni in modo verbale (espressivo). Queste opzioni vengono descritte nella sezione seguente.
Se non viene fornito alcun nome di opzione, vengono emessi i valori delle opzioni correnti.
-
p
Attiva la modalità di funzionamento privilegiato. In questa modalità, il file indicato all'interno della variabile BASH_ENV non viene elaborato e le funzioni di shell non vengono ereditate dall'ambiente. Questa modalità è abilitata automaticamente all'avvio se lo UID e il GID efficace non è uguale all'UID e GID reale. Disattivare questa modalità fa sì che lo UID e GID efficaci diventino uguali a quelli reali.
-
t
Termina l'esecuzione dopo aver letto ed eseguito un comando.
-
u
Fa in modo che venga considerato un errore l'utilizzo di variabili non impostate (predisposte) quando si effettua l'espansione di una variabile (o di un parametro). In tal caso, quindi, la shell emette un messaggio di errore e, se il funzionamento non è interattivo, termina restituendo un valore diverso da zero.
-
v
Emette le righe inserite nella shell appena queste vengono lette.
-
x
Nel momento in cui si eseguono dei comandi, viene emesso il comando stesso attraverso lo standard output preceduto da quanto contenuto nella variabile PS4.
-
B
Viene attivata l'espansione delle parentesi graffe (predefinito).
-
C
Disabilita la sovrascrittura dei file preesistenti a seguito di una ridirezione dell'output attraverso l'uso degli operatori >, >& e <>. Questa impostazione può essere scavalcata (in modo da riscrivere i file) utilizzando l'operatore di ridirezione >| al posto di > ( `Ridirezione').
<!> In generale sarebbe meglio evitare di intervenire in questo modo, dal momento che ciò non è conforme allo standard di utilizzo normale.
-
H
Abilita la sostituzione dallo storico utilizzando lo stile !. Questo flag è attivo in modo predefinito quando la shell è interattiva.
-
P
Se attivato, non segue i link simbolici quando esegue i comandi che, come cd, cambiano la directory corrente. Vengono usaste invece le directory reali. L'azione di seguire i link simbolici non è così ovvia come sembra.
Se /usr/sys è un link simbolico a /usr/local/sys/, valgono le operazioni seguenti.
$
cd /usr/sys
$
echo $PWD
/usr/sys
$
cd ..
$
echo $PWD
/usr
Se invece è stato attivato set -
P, la stessa cosa
funziona nel modo seguente.
$
cd /usr/sys
$
echo $PWD
/usr/sys
$
cd ..
$
echo $PWD
/usr/local
-
-
Se nessun argomento segue questo flag, allora i parametri posizionali non sono impostati. Altrimenti, i parametri posizionali sono posti al valore degli argomenti, persino se alcuni di loro iniziano con un trattino.
-
Segnala la fine delle opzioni, e fa sì che tutti i rimanenti argomenti siano
assegnati ai parametri posizionali.
Le opzioni -
x e -
v sono disattivate.
Se non vi è alcun argomento, i parametri posizionali rimangono inalterati.
I flag sono disattivati in modo predefinito, salvo se specificato diversamente.
Usando il segno + piuttosto di -
fa in modo di disattivare
(off) questi flag.
I flag possono anche essere specificati come opzioni in una chiamata della
shell.
L'insieme corrente di flag può essere trovato nel parametro
$-
.
Dopo le opzioni, gli argomenti rimanenti sono trattati come valori per i parametri
posizionali e sono assegnati in ordine a $1, $2,
...
Se non viene fornita alcuna opzione o argomento, sono emesse tutte le variabili di
shell.
Restituisce
-
o
Il flag -
o permette di definire le opzioni elencate di
seguito.
allexport
Lo stesso del flag -
a.
braceexpand
La shell effettua l'espansione delle parentesi graffe. Si tratta della modalità predefinita.
emacs
Usa l'editing della riga di comando in stile Emacs.
Si tratta della modalità predefinita quando la shell è interattiva, a meno che
non sia stata avviata con l'opzione -
nolineediting.
errexit
Lo stesso di -
e.
histexpand
Lo stesso di -
H.
ignoreeof
L'effetto è lo stesso di quello ottenibile eseguendo IGNOREEOF=10.
interactive-comments
Permette di ignorare i commenti (# e il resto della riga) anche durante l'esecuzione di una shell interattiva
monitor
Lo stesso di -
m.
noclobber
Lo stesso di -
C.
noexec
Lo stesso di -
n.
noglob
Lo stesso di -
f.
nohash
Lo stesso di -
d.
notify
Lo stesso di -
b.
nounset
Lo stesso di -
u.
physical
Lo stesso di -
P.
posix
Cambia il comportamento di bash dove le operazioni predefinite differiscono dallo standard POSIX 1003.2 per farlo combaciare con lo standard.
privileged
Lo stesso di -
p.
verbose
Lo stesso di -
v.
vi
Usa un editing della riga di comando in stile vi.
xtrace
Lo stesso di -
x.
shift [n]
I parametri posizionali da n+1 in avanti sono spostati a partire da $1 in poi. Se n è 0, nessun parametro viene cambiato. Se n non è indicato, il suo valore predefinito è 1. Il valore di n deve essere un numero non negativo minore o uguale a $#. Se n è più grande di $#, i parametri posizionali non vengono modificati.
Restituisce un valore maggiore di zero se n è più grande di $# o minore di 0; altrimenti restituisce zero.
shopt [<opzioni>] [<opzione-di-shell>... ]
Questo comando permette di cambiare alcune opzioni di shell, attivandole o disattivandole. shopt si affianca al comando set, e permette anche di intervenire sulle ``opzioni'' gestite da quest'ultimo.
-
s
Attiva le opzioni di shell elencate.
-
u
Disattiva le opzioni di shell elencate.
-
o [<opzione-set>... ]
Permette di intervenire sulle opzioni gestite dal comando set.
---------
Se si utilizza l'opzione -
s o -
u senza l'indicazione
di nomi di opzioni di shell, vengono elencati rispettivamente quelle attive e
quelle disattivate.
L'elenco di queste opzioni di shell non viene riportato. Vedere bash(1).
suspend [
-
f]
Sospende l'esecuzione della shell fino a che
non riceve un segnale SIGCONT.
L'opzione -
f permette
di sospenderne l'esecuzione anche se si tratta
di una shell di login;.
Restituisce zero a meno non si verifichi un errore.
test <espressione-condizionale>
[ <espressione-condizionale> ]
Risolve (valuta) l'espressione indicata
(la seconda forma utilizza semplicemente
un'espressione racchiusa tra parentesi quadre).
Il valore restituito può essere
-
e file
-
b file
-
c file
-
d file
-
f file
-
L file
-
p file
-
S file
-
t [<file-descriptor>]
-
g file
-
u file
-
k file
-
r file
-
w file
-
x file
-
O file
-
G file
-
s file
<file1>
-
nt <file2>
<file1>
-
ot <file2>
<file1>
-
et <file2>
-
z <stringa>
-
n <stringa>
<stringa1> == <stringa2>
<stringa1> != <stringa2>
<stringa1> < <stringa2>
<stringa1> > <stringa2>
<argomento1> <operando> <argomento2>
Il risultato dipende dall'operando utilizzato.
-
eq uguale a;
-
ne diverso da;
-
lt minore di;
-
le minore o uguale a;
-
gt maggiore di;
-
ge maggiore o uguale a.
Gli argomenti da confrontare possono essere interi positivi, interi negativi, o
l'espressione speciale -
l <stringa> che calcola la lunghezza
della stringa stessa.
! <espressione>
<espressione1>
-
a <espressione2>
<espressione1>
-
o <espressione2>
times
Emette i tempi di utilizzo accumulati.
trap [
-
l] [<argomento>] [<segnale>]
Il comando espresso nell'argomento dovrà essere letto ed eseguito quando la
shell riceverà il/i segnale/i indicati.
Se non viene fornito l'argomento, o viene fornito
-
al suo posto, tutti i segnali
specificati sono riportati al loro valore originale
(i valori che avevano al momento dell'ingresso nella
shell).
Se l'argomento fornito corrisponde a una stringa
nulla, questo segnale viene ignorato dalla
shell e dai comandi che questo avvia.
Il segnale indicato deve essere uno di quelli
definiti in signal.h, o un
numero di segnale.
Se il segnale è EXIT, pari a
zero, il comando contenuto nell'argomento viene
eseguito all'uscita della shell.
Se viene utilizzato senza argomenti, trap emette la lista di comandi
associati con ciascun numero di segnale.
L'opzione -
l
fa sì che la shell emetta una lista
di nomi di segnali e i loro numeri corrispondenti.
I segnali ignorati al momento dell'ingresso della shell non possono essere
intercettati o inizializzati.
I segnali intercettati sono riportati al loro
valore originale in un processo discendente
quando questo viene creato.
Il valore restituito è
type [
-
all] [-
type | -
path] <nome> [<nome>... ]
Determina le caratteristiche di uno o più comandi indicati come argomento.
<nessuna opzione>
Se viene usato senza opzioni, indica come verrebbe interpretato ciascun nome indicato negli argomenti, se usato come comando.
-
type | -
t
Viene emessa la definizione del tipo di nome indicato tra gli argomenti. Può trattarsi di:
Se il nome non viene trovato, allora non viene emesso nulla e viene restituito il
valore
-
path | -
p
Viene emesso o il nome del file che verrebbe eseguito se il nome indicato negli argomenti fosse utilizzato come un nome di comando, o nulla se non esiste un tale file. Se un comando si trova nella tabella hash, viene emesso il valore lì contenuto e non necessariamente il file che appare per primo nell'elenco dei percorsi di ricerca della variabile PATH.
-
all | -
a
Emette tutti i ritrovamenti di elementi
con i nomi indicati.
Inclusi alias e funzioni, se, e solo se
non viene usato anche il flag
-
path.
La tavola hash dei comandi non viene consultata
quando si usa -
all.
Restituisce
ulimit [<opzioni>] [<limite>]
Fornisce il controllo sulle risorse disponibili per la shell e per i processi avviati da questa, sui sistemi che permettono un tale controllo. Il valore del limite può essere un numero nell'unità specificata per la risorsa, o il valore unlimited.
Se il limite viene omesso, viene emesso il valore corrente del limite soft o hard (a seconda delle opzioni) della risorsa,. Quando viene specificata più di una risorsa, il nome del limite e l'unità vengono emessi prima del valore.
-
H
Viene impostato il limite hard per la data risorsa.
Un limite hard non può essere aumentato una volta che è stato impostato.
Se non viene specificata questa opzione, si intende l'opzione -
S
in modo predefinito.
-
S
Viene impostato il limite soft per la data risorsa.
Un limite soft può essere aumentato fino al valore del limite
hard.
Se non viene specificata questa opzione, e nemmeno -
H, questa è
l'opzione predefinita.
-
a
Sono riportati tutti i limiti correnti.
-
c
La grandezza massima dei file core creati.
-
d
La grandezza massima del segmento dati di un processo.
-
f
La grandezza massima dei file creati dalla shell.
-
m
La grandezza massima della memoria occupata.
-
s
La grandezza massima dello stack.
-
t
Il massimo quantitativo di tempo di CPU in secondi.
-
p
La grandezza della pipe in blocchi da 512 byte (questo non può essere cambiato).
-
n
Il numero massimo di descrittori di file aperti (la maggior parte dei sistemi non permette che questo valore sia impostato, ma solo mostrato).
-
u
Il numero massimo di processi disponibili per un singolo utente.
-
v
Il massimo ammontare di memoria virtuale disponibile per la shell.
Se il limite viene espresso, questo diventa il
nuovo valore per la risorsa specificata.
Se non viene espressa alcuna opzione, si assume
-
f.
I valori sono in multipli di 1024 byte,
tranne che per -
t che è in secondi,
-
p che è in unità di
blocchi da 512 byte,
e -
n e -
u,
che sono numeri senza unità.
Il valore restituito è zero a meno che non siano commessi errori.
umask [
-
S] [<modalità>]
La maschera di creazione dei file dell'utente
viene modificata in modo da farla coincidere con la modalità
indicata.
Se la modalità inizia con una cifra numerica,
questo valore viene interpretato come un numero ottale;
altrimenti viene interpretato in modo simbolico,
così come avviene con chmod.
Se la modalità viene omessa, oppure se è
stata fornita l'opzione -
S,
viene emesso il valore corrente della maschera.
L'opzione -
S fa sì che
la maschera venga emessa in formato simbolico;
l'uscita predefinita è un numero ottale.
Restituisce zero a meno che non vengano riscontrati errori.
unalias [
-
a] [<nome-di-alias>... ]
Rimuove l'alias indicato dalla lista degli alias definiti.
Se viene fornita l'opzione -
a,
sono rimosse tutte le definizioni di alias.
Restituisce
unset [
-
fv] [<nome-di-variabile-o-di-funzione>... ]
Vengono rimosse le variabili indicate.
Se viene utilizzata l'opzione -
f, si fa riferimento a funzioni.
<!> Le variabili PATH, IFS, PPID, PS1, PS2, UID, e EUID non possono essere rimosse.
<!> Se una qualsiasi fra RANDOM, SECONDS, LINENO, o HISTCMD viene rimossa, perde la sua speciale proprietà, persino se essa viene successivamente ripristinata.
Restituisce
wait [n]
Attende la conclusione del processo specificato e restituisce il suo stato di uscita. Il numero n può essere un PID o un job; se viene indicato un job, si attende la conclusione di tutti i processi nella pipeline di quel job. Se n non viene indicato, si aspetta la conclusione di tutti i processi discendenti correntemente attivi, e il valore restituito è zero. Se n specifica un processo o un job non esistente, viene restituito 127. Altrimenti, il valore restituito è lo stesso dell'ultimo processo o job per cui si era in attesa.
1997.10.26 - Scritto da Daniele Giacomini daniele@calion.com (vedi copyright: Appunti Linux).