Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

read – Leggi i valori dall'input standard

. read Il comando builtin viene utilizzato per leggere una singola riga di input standard. Questo comando può essere utilizzato per leggere l'input da tastiera o, quando si utilizza 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 dall'input standard alle variabili specificate. Se modifichiamo il nostro script di valutazione degli interi per utilizzare read, potrebbe apparire così:


#! / Bin / bash


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


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


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

echo "$int è zero."

altro

se [ $int -lt 0 ]; allora

echo "$int è negativo."

altro

echo "$int è positivo."

fi

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

altro

echo "$int è dispari."

fi

per altro

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

fi

#! / Bin / bash


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


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


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

echo "$int è zero."

altro

se [ $int -lt 0 ]; allora

echo "$int è negativo."

altro

echo "$int è positivo."

fi

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

altro

echo "$int è dispari."

fi

per altro

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

fi


Usiamo eco con la -n opzione (che sopprime la nuova riga finale nell'output) per visualizzare un prompt, quindi utilizzare read per immettere un valore per la variabile intL'esecuzione di questo script produce quanto segue:


[io@linuxbox~]$ lettura-intero

Inserisci un numero intero -> 5

5 è positivo.

5 è dispari.

[io@linuxbox~]$ lettura-intero

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 vengono forniti numeri diversi di valori:



[io@linuxbox~]$ lettura multipla

Inserisci uno o più valori > abcde

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

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

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

[io@linuxbox~]$ lettura multipla

Inserisci uno o più valori > abcdefg

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

[io@linuxbox~]$ lettura multipla

Inserisci uno o più valori > abcde

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

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

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

[io@linuxbox~]$ lettura multipla

Inserisci uno o più valori > abcdefg

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


If read riceve un numero inferiore a quello previsto, le variabili extra sono vuote, mentre una quantità eccessiva di input fa sì che la variabile finale contenga tutto l'input extra.

Se non vengono elencate variabili dopo read comando, una variabile 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 "RISPOSTA = '$RISPOSTA'"

#! / Bin / bash

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

read


echo "RISPOSTA = '$RISPOSTA'"


L'esecuzione di questo script produce quanto segue:



[io@linuxbox~]$ lettura singola

Inserisci uno o più valori > abcd

RISPOSTA = 'abcd'

[io@linuxbox~]$ lettura singola

Inserisci uno o più valori > abcd

RISPOSTA = 'abcd'


 

Il miglior sistema operativo cloud computing su OnWorks: