# Variabili d'ambiente

Le variabili d'ambiente (`environment variables`) sono coppie chiave-valore utilizzate per memorizzare informazioni di configurazione a livello di sistema operativo. Tali variabili influenzano il comportamento dei processi e delle applicazioni in esecuzione, consentendo di personalizzare l’ambiente di lavoro.

## Identificazione delle variabili d’ambiente

Per elencare tutte le variabili d’ambiente attualmente definite, è possibile utilizzare il comando `env`. Questo comando restituisce un elenco completo delle variabili e dei rispettivi valori.

La variabile `PATH` è particolarmente importante, in quanto contiene un elenco di directory, separate dal carattere `:`, in cui la shell ricerca gli eseguibili.  In questo modo, è possibile avviare un programma semplicemente digitandone il nome, senza dover specificare il percorso assoluto.

Per visualizzare il valore di una specifica variabile d’ambiente, si utilizza il comando `echo`, anteponendo il simbolo `$` al nome della variabile:

```bash
echo $EDITOR
vim

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
```

## Creazione di nuove variabili d’ambiente

Per creare una nuova variabile d'ambiente, si può utilizzare la seguente sintassi:

```bash
myvar=variable

echo $myvar
variable
```

È importante notare che una variabile d'ambiente creata in questo modo è disponibile solo all'interno della sessione di shell corrente. Per renderla disponibile anche a tutte le shell figlie, è necessario utilizzare il comando `export`:

```bash
myvar=variable
export myvar

bash

echo $myvar
variable
```

## Cancellazione

Per rimuovere una variabile d'ambiente, si utilizza il comando `unset`, seguito dal nome della variabile:

```bash
unset myvar
```

## Caratteri speciali

Durante l’assegnazione o l’utilizzo di variabili d’ambiente, è importante prestare attenzione ai caratteri speciali, che possono essere interpretati in modo diverso a seconda del contesto.

Le virgolette singole (`' '`) conservano il valore letterale di tutti i caratteri, mentre le virgolette doppie (`" "`) conservano il valore letterale di tutti i caratteri, ad eccezione di `$`, `` ` `` e `\`, che mantengono il loro significato speciale.

Per interpretare letteralmente un carattere speciale, è possibile anteporre un backslash (`\`) al carattere stesso. Ad esempio, per creare un file con spazi nel nome, si utilizza la sintassi seguente:

```bash
touch my\ big\ file
```
