| España-Español |
|
|
|
![]() |
Utilización de HP-UX: Servidores y estaciones de trabajo HP > Capítulo 3 Utilización
del shellExplicación de los archivos de entrada estándar, salida estándar y error estándar |
|
Cada proceso abre tres “archivos” estándar: entrada estándar (stdin), salida estándar (stdout) y error estándar (stderr). Los programas utilizan estos archivos del modo siguiente:
La siguiente figura ilustra la relación de estos archivos con el proceso. El shell permite desviar la salida estándar de un proceso desde la pantalla (el valor por defecto) a un archivo. Desviar la salida permite almacenar el texto generado por un comando en un archivo; además, es una manera práctica de seleccionar qué archivos o dispositivos (por ejemplo, impresoras) utiliza un programa. En su forma más sencilla, la sintaxis de comando es la siguiente: stdout
donde comando es el comando cuya salida se desvía y archivosalida es el nombre del archivo en el que el proceso graba su salida estándar. Si el archivo de salida existe, se pierde el contenido que tuviera anteriormente. Si el archivo no existe, se crea. Para adjuntar la salida a un archivo existente, utilice dos signos mayores que (>>) que señalen el archivo al que haya de adjuntarse. En la siguiente figura se ilustra el paradero de los archivos stdin, stdout y stderr cuando la salida se desvía a un archivo. En el siguiente ejemplo se muestra el desvío de la salida con el comando who, que presenta una lista de los usuarios que tienen iniciada una sesión actualmente en el sistema. En lugar de mostrar los usuarios en la pantalla del terminal, la salida se desvía al archivo quiénestáconectado. who(1)
El shell permite desviar la entrada estándar de un proceso para que la entrada se lea desde un archivo en lugar de desde el teclado. Para desviar la entrada de un proceso, separe el comando y el nombre del archivo de entrada con un signo menor que (<) apuntando al nombre del comando. Puede utilizar el desvío de la entrada con cualquier comando que acepte la entrada desde el archivo stdin (el teclado). En su forma más sencilla, la sintaxis de comando es la siguiente: stdin
donde comando es el comando cuya entrada se desvía y archivoentrada es el nombre del archivo a partir del cual el proceso lee la entrada estándar. El archivo debe existir para que el desvío se lleve a cabo con éxito. En la siguiente figura se ilustra el paradero de los archivos stdin, stdout y stderr cuando la entrada se desvía desde un archivo. En el siguiente ejemplo, la salida estándar del comando who se desvía a un archivo llamado guardarquién. A continuación, el comando more muestra el contenido de guardarquién. Por último, la entrada estándar del comando wc (word count) se desvía para que proceda del archivo guardarquién: Utilización de “>”
Utilización de “<“
En el ejemplo anterior, el comando wc con la opción -l cuenta el número de líneas del archivo de entrada. Puesto que la entrada se desvía desde guardarquién, este número es igual al número de usuarios que tenía iniciada una sesión en el sistema cuando se ejecutó el comando who. Puede desviar tanto la entrada estándar como la salida estándar de un comando. No obstante, no utilice el mismo nombre de archivo para la entrada estándar y la salida estándar, puesto que el contenido original del archivo de entrada se perdería. En la siguiente figura se ilustra a dónde se dirigen los archivos stdin, stdout y stderr cuando tanto la salida como la entrada se desvían de un archivo a otro. En el siguiente ejemplo se utiliza el comando sort para ordenar el texto escrito en el teclado. Al escribir CTRL-D, se termina la entrada estándar. La salida estándar se muestra en la pantalla del terminal del modo siguiente: sort(1)
En el siguiente ejemplo, se desvía la entrada:
En el ejemplo anterior, el comando sort utiliza de entrada un archivo que se llama calcetines. La salida estándar se muestra en la pantalla del terminal. En el siguiente ejemplo se combina el desvío de la entrada y la salida:
En este ejemplo, el comando sort lee la entrada del archivo calcetines y graba la salida en el archivo ordenarcalcetines; de este modo, la salida estándar (a diferencia de los dos ejemplos anteriores) no se muestra en la pantalla. El shell permite conectar dos o más procesos para que la salida estándar de un proceso se utilice como la entrada estándar para otro proceso. La conexión que une los procesos es una canalización. Para canalizar la salida de un proceso en otro, separe los comandos con una pleca (|). La sintaxis general de una canalización es la siguiente:
donde comando1 es el comando cuya salida estándar se desvía o canaliza a otro comando, y comando2 es el comando cuya entrada estándar lee la salida del comando anterior. Puede combinar dos o más comandos en una sola canalización. La salida de cada comando sucesivo se canaliza como la entrada al siguiente comando de la línea de comandos.
En el siguiente ejemplo, la salida del comando who se vuelve a almacenar en el archivo guardarquién. A continuación, el archivo guardarquién se utiliza como entrada para el comando wc: wc(1)
Con una canalización, estos dos comandos se convierten en uno:
Tal como se ilustra en este ejemplo, el uso de canalizaciones acaba con la necesidad de que haya archivos intermedios temporales. En su lugar, la salida estándar del primer comando se envía directamente al segundo comando como su entrada estándar. El comando tee permite desviar una copia de los datos que se transmiten entre los comandos a un archivo sin modificar el modo en que funciona la canalización. En el ejemplo siguiente se utiliza el comando who para determinar quién está conectado al sistema. En el ejemplo, que se ilustra en la figura presentada más adelante, la salida de who se canaliza a través del comando tee, que guarda una copia de la salida en el archivo guardarquién y transmite la salida no modificada al comando wc: tee(1)
HP-UX ofrece programas de filtro que resultan útiles en las canalizaciones. Estos programas aceptan texto como entrada, transforman el texto de alguna manera y generan texto como salida. Los comandos de filtro incluyen adjust, awk, more, cut, grep, head, more, pr, rev, sed, sort, spell y tail. Para obtener información sobre estos comandos, consulte las páginas de manual respectivas. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||