Si definisce ambiente (o environment) un insieme di variabili dette appunto variabili di ambiente che possono essere accedute dai processi. Tali variabili non sono passate in input ai processi, ma sono gestite dalla shell. Le variabili di ambiente più comuni sono riportate nella tab. 3.4, ma si consiglia di far riferimento alla man page environ(5) per avere un elenco più completo.
![]()
|
La visualizzazione delle variabili di ambiente definite è ottenibile tramite il comando interno set che serve anche a definire molte delle impostazioni di Bash. La sua sintassi è mostrata nella sez. 3.4.11.
Una variabile di ambiente è definita per mezzo della seguente sintassi
$ varname=[value]
dove
Ad esempio, il comando
$ PIPPO=ciao
definisce la variabile di ambiente PIPPO e la imposta col valore ciao;
Il valore contenuto in una variabile di ambiente può essere visualizzato per mezzo del comando interno echo che serve per visualizzare delle stringhe.
____________________________________________________________________
SINTASSI
$ echo [option] [arg ...]
DESCRIZIONE
$ echo $PATH
visualizza il contenuto della variabile d’ambiente PATH.
____________________________________________________________________
SINTASSI
$ export [option] [varname[=value] ...]
DESCRIZIONE
Il comando set visualizza l’elenco delle variabili di ambiente visibili al processo (shell) corrente, ma se si vuole visualizzare l’elenco delle variabili d’ambiente visibili ai processi figli è necessario utilizzare il comando export.
Ad esempio, il comando
$ PIPPO=ciao
definisce la variabile di ambiente PIPPO con il contenuto “ciao” ed il comando
seguente
$ echo $PIPPO
visualizza il contenuto della stessa variabile. Ma se a questo punto si lancia
un processo figlio (qualunque comando impartito dalla linea di comando, a meno
che non sia un comando interno di Bash, implica la generazione di un processo
figlio), come, per esempio, invocando l’esecuzione di un altro processo bash con il
comando
$ bash
e si visualizza il contenuto della variabile di ambiente PIPPO tramite il comando
$ echo $PIPPO
$
si ottiene una risposta nulla, come se tale variabile non fosse stata definita. Se si chiude il
processo bash appena lanciato con il comando
$ exit
e si rende visibile ai processi figli tale variabile con il comando
$ export $PIPPO
rilanciando un processo figlio, questo sarà in grado di “vedere” tale variabile. Infatti,
analogamente a quanto fatto precedentemente
$ bash
$ echo $PIPPO
ciao
$
ma in questo caso viene visualizzato il contenuto della variabile di ambiente PIPPO
impostata a “ciao”.
Quindi, i seguenti comandi
$ PIPPO=ciao
$ export $PIPPO
sono equivalenti a
$ export PIPPO=ciao
Per eliminare una variabile di ambiente è necessario utilizzare il comando interno
unset.
____________________________________________________________________
SINTASSI
$ unset [option] [varname ...]
DESCRIZIONE
|
Alcune variabili di ambiente non possono essere rimosse. |
$ eval "`seq 10000 | sed -e 's/.*/export var&=ZZZZZZZZZZZZZZ/'`"
$ du bash: /usr/bin/du: Argument list too long
[da completare ...]