Mandato read
Finalidad
Lee una línea de la entrada estándar.
Sintaxis
leer [-p] [ -r ] [-s][- u [ n ]][ VariableName?Solicitar]
Descripción
El mandato read lee una línea de la entrada estándar y asigna los valores de cada campo de la línea de entrada a una variable de shell utilizando los caracteres de la variable IFS (Separador de campo interno) como separadores. El parámetro VariableName especifica el nombre de una variable de shell que toma el valor de un campo de la línea de entrada. A la primera variable de shell especificada por el parámetro VariableName se le asigna el valor del primer campo, a la segunda variable de shell especificada por el parámetro VariableName se le asigna el valor del segundo campo, y así sucesivamente, hasta que se alcance el último campo. Si la línea de entrada estándar tiene más campos de los que hay variables de shell correspondientes especificadas por el parámetro VariableName , a la última variable de shell especificada se le da el valor de todos los campos restantes. Si hay menos campos que las variables de shell, las variables de shell restantes se establecen en series vacías.
El establecimiento de variables de shell mediante el mandato read afecta al entorno de ejecución de shell actual.
Distintivos
| Elemento | Descripción |
|---|---|
| -p | Lee la entrada de la salida de un proceso ejecutado por el shell Korn utilizando | & (pipe, ampersand). Nota: Un carácter de fin de archivo con el distintivo -p provoca la limpieza de este proceso para que se pueda generar otro.
|
| -r | Especifica que el mandato de lectura trata un carácter \ (barra inclinada invertida) como parte de la línea de entrada, no como un carácter de control. |
| -s | Guarda la entrada como un mandato en el archivo histórico del shell Korn. |
| - u [ n ] | Lee la entrada del número de descriptor de archivo de un dígito, n. El descriptor de archivo se puede abrir con el mandato incorporado exec de ksh. El valor predeterminado de n es 0, que hace referencia al teclado. Un valor de 2 hace referencia a un error estándar. |
Parámetros
| Elemento | Descripción |
|---|---|
| VariableName?Solicitud | especifica el nombre de una variable y una solicitud que se va a utilizar. Cuando el shell Korn es interactivo, escribirá la solicitud en el error estándar y, a continuación, realizará la entrada. Si la Solicitud contiene más de una palabra, debe encerrarla entre comillas simples o dobles. |
| VariableName... | especifica uno o más nombres de variable separados por espacios en blanco. |
Estado de salida
Este mandato devuelve los siguientes valores de salida:
| Elemento | Descripción |
|---|---|
| 0 | Finalización satisfactoria. |
| >0 | Se ha detectado un carácter de fin de archivo o se ha producido un error. |
Ejemplos
- El script siguiente imprime un archivo con el primer campo de cada línea movido al final de la línea:
while read -r xx yy do print printf "%s %s/n" $yy $xx done < InputFile - Para leer una línea y dividirla en campos, y utilizar
Escriba:
como solicitud, escriba:
El sistema muestra:read word1?"Please enter: " word2
El valor de la variable word1 debe tenerPlease enter: You enter: hello worldhola
y word2 debe tenermundo
. - Para crear un coproceso, utilice imprimir -p para grabar en el coproceso y utilice leer -p para leer la entrada del coproceso, escriba:
El valor de la variable de línea debe tener(read; print "hello $REPLY") print -p "world" read -p linehello world
. - Para guardar una copia de la línea de entrada como un mandato en el archivo histórico, escriba:
Si input_file contieneread -s line < input_fileecho hello world
,echo hello world
se guardará como un mandato en el archivo histórico.