GNU/Linux >> Linux Esercitazione >  >> Linux

5 Esempi pratici del comando Read in Linux

Cos'è il comando read in Linux?

Il comando di lettura in Linux è un modo per gli utenti di interagire con l'input preso dalla tastiera, che potresti vedere chiamato stdin (input standard) o altre descrizioni simili.

In altre parole, se vuoi che il tuo script bash riceva input dall'utente, dovrai usare il comando read.

Scriverò alcuni semplici script bash per mostrarti l'uso pratico del comando read.

Leggi esempi di comandi

Il comando read può essere fonte di confusione per iniziare, specialmente per coloro che sono nuovi agli script di shell. Gli script che userò qui sono molto semplici da capire e dovrebbero essere facili da seguire, soprattutto se ti stai esercitando insieme al tutorial.

Concetti di base sulla programmazione

Con quasi tutti i programmi o script, vuoi prendere informazioni da un utente (input) e dire al computer cosa fare con quelle informazioni (output).

Quando usi la lettura, stai comunicando al terminale bash che desideri acquisire l'input dall'utente. Per impostazione predefinita, il comando creerà una variabile in cui salvare l'input.

read [options] variable_name

Vediamo ora alcuni esempi di comando read per capire come utilizzarlo in diverse situazioni.

1. Leggi comando senza opzioni

Quando digiti read senza opzioni aggiuntive, dovrai premere invio per avviare l'acquisizione. Il sistema acquisirà l'input finché non premi di nuovo invio.

Per impostazione predefinita, queste informazioni verranno memorizzate in una variabile denominata $REPLY .

Per rendere le cose più facili da seguire per il primo esempio, userò il il simbolo apparirà quando si preme il tasto Invio.

read ↵
hello world ↵
echo $REPLY ↵
hello world

Ulteriori informazioni sulle variabili

Come accennato in precedenza, il $REPLY la variabile è incorporata in read , quindi non devi dichiararlo.

Potrebbe andar bene se hai solo un'applicazione in mente, ma molto probabilmente vorrai utilizzare le tue variabili. Quando dichiari la variabile con read, non devi fare altro che digitare il nome della variabile.

Quando vuoi chiamare la variabile, utilizzerai un $ davanti al nome Ecco un esempio in cui creo la variabile Linux_Handbook e assegnargli il valore dell'input.

Puoi usare il comando echo per verificare che il comando di lettura abbia fatto la sua magia:

read Linux_Handbook ↵
for easy to follow Linux tutorials.
echo $Linux_Handbook ↵
for easy to follow Linux tutorials.

Promemoria:i nomi delle variabili fanno distinzione tra maiuscole e minuscole.

2. Opzione prompt -p

Se stai scrivendo uno script e desideri acquisire l'input dell'utente, è disponibile un'opzione di lettura per creare un prompt in grado di semplificare il codice. La codifica è tutta una questione di efficienza, giusto?

Invece di usare linee aggiuntive e comandi echo, puoi semplicemente usare il -p flag di opzione. Il testo che digiti tra virgolette verrà visualizzato come previsto e l'utente non dovrà premere invio per iniziare a catturare l'input.

Quindi, invece di scrivere due righe di codice come questa:

echo "What is your desired username? "
read username

Puoi usare il -p opzione con comando di lettura come questo:

read -p "What is your desired username? " username

L'input verrà salvato nella variabile $username.

3. Opzione “Segreta”/Silenziosa -s

Ho scritto uno script semplice bash per dimostrare il prossimo flag. Per prima cosa dai un'occhiata all'output.

bash secret.sh
What is your desired username? tuxy_boy
Your username will be tuxy_boy.
Please enter the password you would like to use:

You entered Pass123 for your password.
Masking what's entered does not obscure the data in anyway.

Ecco il contenuto di secret.sh se vuoi ricrearlo.

#!/bin/bash
read -p "What is your desired username? " username
echo "Your username will be" $username"."
read -s -p "Please enter the password you would like to use: " password
echo
echo "You entered" $password "for your password."
echo "Masking what's entered does not obscure the data in anyway."

Come puoi vedere, il -s l'opzione ha mascherato l'input quando è stata inserita la password. Tuttavia, questa è una tecnica superficiale e non offre una vera sicurezza.

4. Utilizzo di un limite di caratteri con l'opzione di lettura -n

Puoi aggiungere un vincolo all'input e limitarlo a n numero di caratteri di lunghezza.

Usiamo lo stesso script di prima ma lo modifichiamo in modo che gli input siano limitati a 5 caratteri.

read -n 5 -p "What is your desired username? " username

Aggiungi semplicemente -n N dove N è il numero di tua scelta.

Ho fatto la stessa cosa per la nostra password.

bash secret.sh
What is your desired username? tuxy_Your username will be tuxy_.
Please enter the password you would like to use:
You entered boy for your password.

Come puoi vedere, il programma ha smesso di raccogliere input dopo 5 caratteri per il nome utente.

Tuttavia, potrei ancora scrivere MENO di 5 caratteri fintanto che premo dopo l'input.

Se vuoi limitarlo, puoi usare -N (invece di -n) Questa modifica fa in modo che siano richiesti esattamente 5 caratteri, né meno, né più.

5. Memorizzazione delle informazioni in un array -a

Puoi anche usare il comando di lettura in Linux per creare i tuoi array. Ciò significa che possiamo assegnare blocchi di input agli elementi in un array. Per impostazione predefinita, la barra spaziatrice separa gli elementi.

[email protected]:~$ read -a array
abc def 123 x y z
[email protected]:~$ echo  ${array[@]}
abc def 123 x y z
[email protected]:~$ echo  ${array[@]:0:3}
abc def 123
[email protected]:~$ echo  ${array[0]}
abc
[email protected]:~$ echo  ${array[5]}
z

Se non conosci gli array o se li vedi per la prima volta in bash, analizzerò cosa sta succedendo.

  • Inserisci gli elementi desiderati, separati da spazi.
  • Se mettiamo solo la variabile @, itera e stampa l'intero ciclo.
  • Il simbolo @ rappresenta il numero dell'elemento e con i due punti dopo, possiamo dire iterare dall'indice 0 all'indice 3 (come scritto qui).
  • Stampa l'elemento all'indice 0.
  • Simile a sopra, ma dimostra che gli elementi sono separati dallo spazio

Suggerimento bonus:aggiunta di una funzione di timeout

Puoi anche aggiungere un timeout alla nostra lettura. Se nessun input viene catturato nel tempo assegnato, il programma andrà avanti o terminerà.

[email protected]:~$ read -t 3
[email protected]:~$

Potrebbe non essere ovvio guardare l'output, ma il terminale ha atteso tre secondi prima di scadere e terminare il programma di lettura.

Conclusione

Spero che questo tutorial sia stato utile per iniziare con il comando read in Linux. Come sempre, ci piace sentire dai nostri lettori i contenuti a cui sono interessati. Lascia un commento qui sotto e condividi i tuoi pensieri con noi!


Linux
  1. 7 Esempi pratici di comando cd in Linux

  2. Comando cp in Linux:7 esempi pratici

  3. Comando di arresto di Linux:5 esempi pratici

  4. Esempi pratici del comando Unzip in Linux

  5. 5 Esempi pratici del comando dd in Linux

I 50 esempi pratici del comando SED in Linux

15 esempi pratici di comando Rsync in Linux

5 esempi pratici di Tail Command in Linux

echo Command in Linux:7 esempi pratici

Esempi essenziali del comando ps in Linux

Pratico comando Ping negli esempi di Linux