Introduzione a Unix
Indietro | Capitolo 9 Programmazione di shell | Avanti

# 9.4 Variabili

Alcune variabili sono automaticamente inizializzate all'avvio della shell. Queste variabili permettono di riferirsi agli argomenti su linea di comando.

Queste variabili di shell sono:

Tabella 9-1. Variabili di shell

Variabile | Uso | sh | csh
--- | --- | --- | ---
`$#` | numero di argomenti su linea di comando | x |
`$-` | opzioni fornite alla shell | x |
`$?` | valore di uscita dell'ultimo comando eseguito | x |
`$$` | numero id del processo corrente | x | x
`$!` | numero di processo dell'ultimo comando messo in background | x |
`$`n`` | argomento su linea di comando, dove `n` varia tra 1 e 9, leggendo da sinistra a destra | x | x
`$0` | il nome della shell corrente o del programma corrente | x | x
`$*` | tutti gli argomenti su linea di comando ("$1 $2 ... $9") | x | x
`$@` | tutti gli argomenti su linea di comando, ciascuno quotato separatamente ("$1" "$2" ... "$9") | x |
`$argv[`n`]` | seleziona l'`n-esima` parola dalla lista di input |  | x
`${argv[`n`]}` | come sopra |  | x
`$#argv` | riporta il numero di parole della lista di input |  | x

L'uso di queste variabili può essere illustrato con alcuni semplici script. Per la shell Bourne lo script potrebbe essere:

    #!/bin/sh
    echo "$#:" $#
    echo '$#:' $#
    echo '$-:' $-
    echo '$?:' $?
    echo '$$:' $$
    echo '$!:' $!
    echo '$3:' $3
    echo '$0:' $0
    echo '$*:' $*
    echo '$@:' $@

Quando viene eseguito con alcuni argomenti, mostra i valori delle variabili di shell, esempio:

    $ ./variables.sh one two three four five
    5: 5
    $#: 5
    $-:
    $?: 0
    $$: 12417
    $!:
    $3: three
    $0: ./variables.sh
    $*: one two three four five
    $@: one two three four five

Come si può notare, si ha la necessità di usare un carattere di quoting singolo per impedire alla shell di assegnare significati speciali a $. Il carattere di quoting doppio, come nella prima struttura `echo`, permette di rimpiazzare il nome della variabile con il suo valore.

Similmente, per le variabili della shell C si possono illustrare le sostituzioni di variabili tramite il seguente script:

    #!/bin/csh -f
    echo '$$:' $$
    echo '$3:' $3
    echo '$0:' $0
    echo '$*:' $*
    echo '$argv[2]:' $argv[2]
    echo '${argv[4]}:' ${argv[4]}
    echo '$#argv:' $#argv

che quando eseguito con alcuni argomenti mostra il risultato seguente:

    % ./variables.csh one two three four five
    $$: 12419
    $3: three
    $0: ./variables.csh
    $*: one two three four five
    $argv[2]: two
    ${argv[4]}: four
    $#argv: 5

Indietro | Partenza | Avanti
Quoting | Risali | Sostituzione di parametri

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