Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

read – Leggi i valori dall'input standard

I read comando incorporato viene utilizzato per leggere una singola riga di input standard. Questo comando può essere utilizzato per leggere l'input da tastiera o, quando viene utilizzato il reindirizzamento, una riga di dati da un file. Il comando ha la seguente sintassi:

leggere [-Opzioni] [variabile...]

where Opzioni è una o più delle opzioni disponibili elencate di seguito e variabile è il nome di una o più variabili utilizzate per contenere il valore di input. Se non viene fornito alcun nome di variabile, la variabile shell REPLY contiene la riga di dati.

Fondamentalmente, read assegna i campi dallo standard input alle variabili specificate. Se modifichiamo il nostro script di valutazione dei numeri interi da usare read, potrebbe assomigliare a questo:


#! / Bin / bash


# read-integer: valuta il valore di un intero.


echo -n "Inserisci un numero intero -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; allora if [ $int -eq 0 ]; poi

echo "$int è zero."

altro

if [ $int -lt 0 ]; poi

echo "$int è negativo."

altro

echo "$int è positivo."

fi

if [ $((int % 2)) -eq 0 ]; then echo "$int è pari."

altro

echo "$int è dispari."

fi

per altro

echo "Il valore di input non è un numero intero." >&2 uscita 1

fi

#! / Bin / bash


# read-integer: valuta il valore di un intero.


echo -n "Inserisci un numero intero -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; allora if [ $int -eq 0 ]; poi

echo "$int è zero."

altro

if [ $int -lt 0 ]; poi

echo "$int è negativo."

altro

echo "$int è positivo."

fi

if [ $((int % 2)) -eq 0 ]; then echo "$int è pari."

altro

echo "$int è dispari."

fi

per altro

echo "Il valore di input non è un numero intero." >&2 uscita 1

fi


Usiamo eco con la -n opzione (che sopprime la nuova riga finale sull'output) per visualizzare un prompt, quindi utilizzare read per inserire un valore per la variabile int. L'esecuzione di questo script risulta in questo:


[io@linuxbox~]$ lettura-intero

Per favore inserisci un numero intero -> 5

5 è positivo.

5 è dispari.

[io@linuxbox~]$ lettura-intero

Per favore inserisci un numero intero -> 5

5 è positivo.

5 è dispari.


read può assegnare input a più variabili, come mostrato in questo script:


#! / Bin / bash

# read-multiple: legge più valori dalla tastiera echo -n "Inserisci uno o più valori > "

leggi var1 var2 var3 var4 var5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"

#! / Bin / bash

# read-multiple: legge più valori dalla tastiera echo -n "Inserisci uno o più valori > "

leggi var1 var2 var3 var4 var5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"


In questo script, assegniamo e visualizziamo fino a cinque valori. Nota come read si comporta quando viene fornito un numero diverso di valori:



[io@linuxbox~]$ lettura-multiplo

Inserisci uno o più valori > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[io@linuxbox~]$ lettura-multiplo Inserisci uno o più valori > a var1 = 'un'

var2 = '' var3 = '' var4 = '' var5 = ''

[io@linuxbox~]$ lettura-multiplo

Inserisci uno o più valori > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'

[io@linuxbox~]$ lettura-multiplo

Inserisci uno o più valori > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[io@linuxbox~]$ lettura-multiplo Inserisci uno o più valori > a var1 = 'un'

var2 = '' var3 = '' var4 = '' var5 = ''

[io@linuxbox~]$ lettura-multiplo

Inserisci uno o più valori > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'


If read riceve meno del numero previsto, le variabili extra sono vuote, mentre una quantità eccessiva di input risulta nella variabile finale contenente tutto l'input extra.

Se nessuna variabile è elencata dopo read comando, una variabile di shell, REPLY, verranno assegnati tutti gli input:



#! / Bin / bash

# read-single: legge più valori nella variabile predefinita echo -n "Inserisci uno o più valori > "

read


echo "RISPONDI = '$RISPONDI'"

#! / Bin / bash

# read-single: legge più valori nella variabile predefinita echo -n "Inserisci uno o più valori > "

read


echo "RISPONDI = '$RISPONDI'"


L'esecuzione di questo script risulta in questo:



[io@linuxbox~]$ lettura-singolo

Inserisci uno o più valori > abcd

RISPOSTA = 'abcd'

[io@linuxbox~]$ lettura-singolo

Inserisci uno o più valori > abcd

RISPOSTA = 'abcd'


 

Il miglior sistema operativo cloud computing su OnWorks: