Innanzitutto, controlla la sintassi di base del comando "leggi":
leggi [opzione] variabileUsare il comando "leggi" significa che stai interagendo con Bash per ottenere informazioni dall'utente. Salva il valore in una variabile, ma senza "$" cartello. Potrai capire meglio questo concetto con un esempio.
Esempio 1: utilizzo del comando "leggi" in uno script Bash
Per approfondire il comando “leggi” creeremo un semplice script che chiederà il nome dell'utente. Innanzitutto, apri qualsiasi editor di testo; per questo tutorial, sto usando l'editor di testo Vim grazie alle sue molte utili funzioni. Per installare Vim, esegui il seguente comando nel terminale:
$sudo apt install vimQuindi, digita quanto segue nel file di testo:
#! \bin\bashecho “Digita il tuo nome”
leggi il nome
echo “Il tuo nome è” $nome
Salva il file con qualsiasi nome, quindi premi Esc e digita ":w readcom.sh.” Per eseguire lo script, immetti il seguente comando:
$ bash readcom.shLo script sopra chiederà all'utente di scrivere il suo nome. Il comando "leggi" salverà quindi l'input dell'utente. La riga successiva stamperà il nome immesso dall'utente.
Esempio 2: semplificazione del codice utilizzando l'operatore "prompt"
L'esempio precedente può essere ulteriormente semplificato utilizzando il "richiesta"operatore". Riscriviamo l'esempio sopra per comprendere il codice:
#! /bin/bashread -p "Digita il tuo nome" nome
echo “Il tuo nome è” $nome
Esempio 3: nascondere l'input dell'utente utilizzando l'operatore "segreto/silenzioso"
Il "-S"Il flag può essere utilizzato per nascondere l'input dell'utente. Il seguente esempio di script Bash mostra come utilizzare l'operatore "-s":
#! /bin/bashread -p "Digita il tuo nome utente" nome utente
read -s -p “Digita la tua password” $password
Esempio 4: limitazione della lunghezza dei caratteri
Il "-n"Il flag può essere utilizzato per aggiungere un vincolo al numero di caratteri che l'utente può inserire.
#!/bin/bashread -n 8 -p “Digita il tuo nome utente non più di 8 caratteri” nome utente
echo “Il tuo nome utente è” $nomeutente
Con l'opzione "-n", l'utente può ancora scrivere meno di otto caratteri. Per restringere ulteriormente la lunghezza dell'input, il "-noÈ possibile utilizzare il flag ", che limita la risposta dell'utente a esattamente otto caratteri.
Esempio 5: ottenere l'input in un array
L'input dell'utente può anche essere preso in un array con il "-un" bandiera. Ad esempio, per ottenere il nome, l'età e l'indirizzo e-mail dell'utente in una volta sola, possiamo utilizzare un array. Vediamo un esempio:
#! /bin/bashecho "Digita nome, età ed e-mail"
read -a nome dell'array età email
echo "Il tuo nome, età e indirizzo email sono: $array[@] name age email"
echo "Il tuo nome e la tua età sono: $array[@]:0:1 name age"
echo "Il tuo indirizzo email è: $array[2] email"
- "$array[@]" scorrerà tutte le variabili.
- Per scorrere gli indici da 0 a 1, usa "$array[@]:0:1" con i nomi delle variabili.
- Per ottenere il valore di una particolare variabile in corrispondenza di un indice specifico, utilizzare "$array[2]" con il nome della variabile.
Esempio 6: aggiunta di un timeout al comando “read”
Come indica il nome del comando, è possibile aggiungere un timeout come condizione per la lettura del codice utilizzando il flag "-t", che fa inserire all'utente le informazioni per un tempo specifico. In caso contrario, il programma si sposterà alla riga di codice successiva.
#! \bin\bashecho “Qual è la capitale del Giappone?? Rispondi in 5 secondi”
leggi -t 5 risposta
if [ “$risposta” = “tokyo” ] || [ “$risposta” = “Tokyo” ];
poi
echo “La tua risposta è corretta!"
altro
echo “La tua risposta è sbagliata!"
fi
Conclusione
Ottenere input da un utente è una delle parti più importanti della programmazione, rendendo i tuoi programmi più interattivi more. Questo articolo ti ha mostrato come utilizzare il comando "leggi", uno dei comandi chiave negli script Bash. In questo articolo, hai appreso alcuni dei vari approcci che puoi utilizzare con il comando "leggi", dagli operatori flag di base agli operatori avanzati.