Estaciones de trabajo en línea OnWorks Linux y Windows

Logotipo

Alojamiento gratuito en línea para estaciones de trabajo

<Anterior | Contenido | Siguiente>

leer - Leer valores de entrada estándar

La read El comando incorporado se usa para leer una sola línea de entrada estándar. Este comando se puede utilizar para leer la entrada del teclado o, cuando se emplea la redirección, una línea de datos de un archivo. El comando tiene la siguiente sintaxis:

leer [-opciones] [variable...]

donde opciones es una o más de las opciones disponibles que se enumeran a continuación y variable es el nombre de una o más variables utilizadas para contener el valor de entrada. Si no se proporciona un nombre de variable, la variable de shell RESPUESTA contiene la línea de datos.

Básicamente, read asigna campos de entrada estándar a las variables especificadas. Si modificamos nuestro script de evaluación de enteros para usar read, podría verse así:


#! / Bin / bash


# read-integer: evalúa el valor de un entero.


echo -n "Por favor ingrese un entero ->" leer int


si [["$ int" = ~ ^ -? [0-9] + $]]; entonces si [$ int -eq 0]; luego

echo "$ int es cero".

más

si [$ int -lt 0]; luego

echo "$ int es negativo".

más

echo "$ int es positivo".

fi

si [$ ((int% 2)) -eq 0]; luego echo "$ int es par".

más

echo "$ int es extraño".

fi

fi más

echo "El valor de entrada no es un número entero". > & 2 salida 1

fi

#! / Bin / bash


# read-integer: evalúa el valor de un entero.


echo -n "Por favor ingrese un entero ->" leer int


si [["$ int" = ~ ^ -? [0-9] + $]]; entonces si [$ int -eq 0]; luego

echo "$ int es cero".

más

si [$ int -lt 0]; luego

echo "$ int es negativo".

más

echo "$ int es positivo".

fi

si [$ ((int% 2)) -eq 0]; luego echo "$ int es par".

más

echo "$ int es extraño".

fi

fi más

echo "El valor de entrada no es un número entero". > & 2 salida 1

fi


Utilizamos echo con el -n opción (que suprime el salto de línea final en la salida) para mostrar un mensaje, y luego use read para ingresar un valor para la variable int. La ejecución de este script da como resultado esto:


[yo @ linuxbox ~] $ lectura-entero

Ingrese un número entero -> 5

5 es positivo.

5 es impar.

[yo @ linuxbox ~] $ lectura-entero

Ingrese un número entero -> 5

5 es positivo.

5 es impar.


read puede asignar entrada a múltiples variables, como se muestra en este script:


#! / Bin / bash

# read-multiple: lee varios valores del teclado echo -n "Ingresa uno o más valores>"

leer var1 var2 var3 var4 var5


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

#! / Bin / bash

# read-multiple: lee varios valores del teclado echo -n "Ingresa uno o más valores>"

leer var1 var2 var3 var4 var5


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


En este script, asignamos y mostramos hasta cinco valores. Date cuenta cómo read se comporta cuando se le dan diferentes números de valores:



[yo @ linuxbox ~] $ lectura-múltiple

Ingrese uno o más valores> a B C D e

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

[yo @ linuxbox ~] $ lectura-múltiple Ingrese uno o más valores> a var1 = 'a'

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

[yo @ linuxbox ~] $ lectura-múltiple

Ingrese uno o más valores> abcdefg

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

[yo @ linuxbox ~] $ lectura-múltiple

Ingrese uno o más valores> a B C D e

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

[yo @ linuxbox ~] $ lectura-múltiple Ingrese uno o más valores> a var1 = 'a'

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

[yo @ linuxbox ~] $ lectura-múltiple

Ingrese uno o más valores> abcdefg

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


If read recibe menos del número esperado, las variables extra están vacías, mientras que una cantidad excesiva de entrada da como resultado que la variable final contenga toda la entrada extra.

Si no se enumeran variables después de read comando, una variable de shell, RESPUESTA, se le asignará toda la entrada:



#! / Bin / bash

# read-single: lee varios valores en la variable predeterminada echo -n "Ingresa uno o más valores>"

read


echo "RESPUESTA = '$ RESPUESTA'"

#! / Bin / bash

# read-single: lee varios valores en la variable predeterminada echo -n "Ingresa uno o más valores>"

read


echo "RESPUESTA = '$ RESPUESTA'"


La ejecución de este script da como resultado esto:



[yo @ linuxbox ~] $ lectura-single

Ingrese uno o más valores> a B C D

RESPUESTA = 'abcd'

[yo @ linuxbox ~] $ lectura-single

Ingrese uno o más valores> a B C D

RESPUESTA = 'abcd'


 

Top OS Cloud Computing en OnWorks: