Si può riferirsi ai parametri in modo astratto e sostituire i loro valori in base a delle condizioni, usando gli operatori definiti qui sotto. Ancora una volta si possono usare le parentesi graffe ({}) per isolare la variabile e il suo operatore.
$ | sostituisce questa stringa con il valore di
parametro |
${ | come sopra. Le parentesi sono d'aiuto se non c'è separazione tra questo parametro e una stringa adiacente. |
$ | setta parametro a
null. |
${ | se parametro non è settato
allora si usa default come valore.
parametro non viene resettato. |
${ | se parametro non è settato
allora lo si setta a default e si usa
il nuovo valore |
${ | se parametro è settato
allora si usa nuovo_valore altrimenti
non si usa nulla. parametro non viene
resettato. |
${ | se parametro non è settato
allora si visualizza il messaggio. Se
parametro è settato allora si
usa il valore corrente. |
Non ci sono spazi nei precedenti operatori. Se un due punti (:) viene inserito prima di -, =, + o ? allora si effettua prima un test per vedere se il parametro ha un settaggio non-nullo.
La shell C ha alcuni modi aggiuntivi per la sostituzione di parametri:
$lista[ | seleziona l'n-esima parola dalla
lista |
${lista[ | come sopra |
$#lista | riporta il numero di parole in lista |
$? | ritorna 1 se il parametro è settato, 0 altrimenti |
${? | come sopra |
$< | legge una linea da stdin(4) |
Inoltre la shell C definisce l'array
$argv[
per
contenere gli n
]n
argomenti della linea di
comando e $#argv
per il numero di argomenti, come
specificato in Tabella
9.1.
Per illustrare alcune di queste caratteristiche si userà il seguente script di prova:
Inizialmente nello script si verifica con test(1) se la variabile esiste; in tal caso si setta il parametro al suo valore. Dopo si riportano i valori, effettuando le sostituzioni.
Nella prima esecuzione dello script non vengono forniti argomenti:
./parameter.sh
0: ./parameter.sh # trova sempre $0
1: 1: # sostituisce 1, ma non assegna questo valore
2: 2: 2 # sostituisce 2 e assegna questo valore
3: : # non sostituisceIn questa seconda esecuzione dello script si forniscono alcuni argomenti:
./parameter one two three
0: ./parameter.sh # trova sempre $0
1: one: one # non sostituisce, ha già un valore
2: two: two # non sostituisce, ha già un valore
3: 3: three # sostituisce 3 ma non assegna questo valoreQuesto, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.