Interpolazione di una stringa

Bash:
Interpolazione di una stringa

How to:

# Basic string interpolation
name="Mondo"
echo "Ciao, $name!"

# Sample output:
Ciao, Mondo!

# Using braces for clarity
greeting="Ciao"
target="Mondo"
echo "${greeting}, ${target}!"

# Sample output:
Ciao, Mondo!

# Complex example with command substitution
user_count=$(who | wc -l)
echo "Ci sono $user_count utenti loggati al sistema."

# Sample output:
Ci sono 3 utenti loggati al sistema.

Deep Dive

L’interpolazione di stringhe in Bash esiste da quando la shell è stata creata. È un aspetto fondamentale dello scripting perché semplifica l’inclusione di variabili e comandi all’interno di stringhe senza concatenazione esplicita o utilizzo eccessivo di comandi esterni.

In Bash e altri shell simili, conosciuti anche come POSIX shells, l’uso delle doppie virgolette permette l’espansione delle variabili, mentre le singole virgolette prevengono l’espansione, trattando il contenuto come una stringa letterale.

L’uso delle parentesi graffe, {}, offre maggiore chiarezza e diventa essenziale quando si vogliono attaccare direttamente caratteri alle variabili senza spazi, per evitare ambiguità.

Oltre al semplice inserimento di variabili, l’interpolazione di stringhe in Bash permette anche la sostituzione di comandi usando $(comando) o il legacy backtick `comando`. Questo esegue un comando e inserisce il suo output direttamente nella stringa.

Un’alternativa all’interpolazione di stringhe è l’uso di printf che, tramite formattatori specifici, inserisce e formatta valori all’interno di una stringa:

printf "Ciao, %s! Ci sono %d utenti loggati.\n" "$name" "$user_count"

Tuttavia, per semplicità e leggibilità, l’interpolazione diretta è spesso preferita negli script di Bash.

See Also