This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

Variabili

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

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