Lezione 4 – Input da tastiera

Vediamo come BASH interagisce con l’utente per poter aggiungere l’interattività al nostro script che finora era un programma eseguito dall’inizio alla fine senza intervento alcuno.
Per poter richiedere l’immisione da prompt di un valore da tastiera  ed asseganrlo ad una variabile ci viene incontro il comando


read

read [ opzioni ] [ testo ] [ variabili

il testo da mostrare a video puo essere racchiuso tra doppi apici

Il comando read permette di interrompere l’esecuzione di uno script in attesa dell’inserimento da parte dell’utente di un input, ovvero di un’informazione necessaria al prosieguo dell’elaborazione.


read ha una opzione molto utile, “-p”,  che peremette di visualizzare il testo seguente ed assegnare il valore digitato da tastiera ala variabile indicata ad esempio:
read -p “Come ti chiami? “ nome

darà come risultato il prompt “Come ti chiami? “ e una volta digitato il nome  verrà memorizzato nella variabile nomer 

lo stesso risultato può essere otenuto con
echo “Come ti chiami “
read nome

read puo essere usato anche per far fermare lo script, attendere un input da tastiera e poi proseguire. (es. Digita ENTER per porseguire). In questo non ci sarà nessuna variabile indicata , ma il dato digitato verrà memorizzato nela variabile $REPLY.

Esempio script

#!/bin/bash
# Questo script richiede input da tastiera del nome
# e lo visualizza successivamente

# l’opzione -n evita di andare a capo
echo -n “Scrivi il nome [Enter]: ”
read nome_utente
echo “Ciao $nome_utente!”

Tra le opzioni più significative per il comando read
– p fa in modo che il cursone non vada a capo dopo la visualizzuazione del testo
– s  fa in modo da non visualizzare l’input digitato (comodo per inpu di passowrd)
– n ncar  termina l’input dopo avere digitato il numero di caratteri indicato da ncar senza premere il tasto Enter.

 

Lezione Precedente :  Aritmetica semplice                                                                           Lezione Prossima: Costrutti Decisionali (IF)

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Anti-spam: complete the taskWordPress CAPTCHA