Rendere gli Script Bash Interattivi con il Comando `read`

Script Bash

Uno script non deve essere per forza una sequenza statica di comandi. Può diventare interattivo, chiedendo all'utente di inserire dei dati durante l'esecuzione. Lo strumento principale per fare questo in Bash è il comando `read`.

La Sintassi di Base di `read`

Il comando `read` legge una riga di testo dall'input standard (la tastiera) e la salva in una o più variabili.

echo "Come ti chiami?"
read NOME
echo "Ciao, $NOME!"

Usare l'Opzione `-p` per il Prompt

È più elegante mostrare il messaggio di richiesta (prompt) sulla stessa riga in cui l'utente digita. Si usa l'opzione `-p` (prompt).

read -p "Inserisci la tua età: " ETA
echo "Tra un anno avrai $((ETA + 1)) anni."

Nota: per le operazioni aritmetiche in Bash, si usa la sintassi `$((...))`.

Nascondere l'Input per le Password con `-s`

Quando devi chiedere una password o un'altra informazione sensibile, non vuoi che venga mostrata a schermo mentre l'utente la digita. L'opzione `-s` (silent) nasconde l'input.

read -s -p "Inserisci la password: " PASSWORD
echo -e "\nPassword ricevuta. Grazie." # \n serve per andare a capo

Un Esempio Completo

Vediamo uno script che chiede nome e cognome e crea una cartella.

#!/bin/bash

read -p "Inserisci il tuo nome: " NOME
read -p "Inserisci il tuo cognome: " COGNOME

NOME_CARTELLA="${NOME}_${COGNOME}"

echo "Sto per creare la cartella: $NOME_CARTELLA"
mkdir "$NOME_CARTELLA"

echo "Fatto!"

Oltre all'input interattivo, uno script può anche ricevere dati tramite argomenti passati da riga di comando, un approccio più adatto per l'automazione non interattiva.

Hai bisogno di una soluzione su misura?

Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.

Richiedi una consulenza