Índice

Gestión de entradas/salidas de un script

1. Redirección de entradas/salidas estándar

El comando interno exec permite manipular los descriptores de archivo del shell en ejecución. Usado en el interior de un script, permite redirigir de manera global las entradas/salidas de este.

Redirigir la entrada estándar de un script

exec 0< archivo 1

Todos los comandos del script situados después de esta directiva y que leen de su entrada estándar extraerán sus datos desde archivo1. Por tanto, no habrá más interacción con el teclado.

Redirigir la salida estándar y la salida de error estándar de un script

exec 1> archivo1 2> archivo2

Todos los comandos del script situados después de esta directiva y que escriben en su salida estándar enviarán sus resultados a archivo1. Los que escriban en su salida de error estándar enviarán sus errores a archivo2.

Redirigir la salida estándar y la salida de error estándar de un script al mismo archivo

exec 1> archivo1 2>&1

Todos los comandos del script situados después de esta directiva enviarán sus resultados y sus errores a archivo1 (ver capítulo Mecanismos esenciales de shell - Redirecciones).

Primer ejemplo

El script batch1.sh envía su salida estándar a /tmp/resu y su salida de error estándar a /tmp/log:

$ nl batch1.sh 
     1  #! /usr/bin/ksh 
  
     2  exec 1> /tmp/resu 2> /tmp/log  ...