Índice

Agrupación de comandos

La agrupación de comandos se puede usar para:

  • Redirigir la salida de varios comandos por pantalla hacia un mismo archivo o hacia una tubería.

  • Ejecutar múltiples comandos en el mismo entorno.

Ejemplo

Sólo la salida estándar del segundo comando se redirige al archivo resultado.

$ date ; ls > resultado  
mar ene 28 05:16:30 CET 2014 
$ cat resultado  
FIC 
archivo 
$

Los paréntesis ( ) y las llaves {} permiten agrupar los comandos. En el primer caso, los comandos se ejecutan en un shell hijo, en el segundo caso en el shell actual.

1. Paréntesis

En la mayoría de los casos, se emplean los paréntesis para agrupar los comandos.

Sintaxis

(cmdo1 ; cmdo2 ; cmdo3)

Con los paréntesis, un shell hijo se crea sistemáticamente y es este el que trata la línea de comandos (con duplicaciones posteriores si es necesario).

Primer ejemplo

En este caso, el usuario se sirve de los paréntesis para redirigir la salida estándar de dos comandos:

$  (date ; ls) > resultado 
$ cat resultado 
mar ene 28 05:21:36 CET 2014 
FIC 
archivo 
$

Las figuras 14, 15 y 16 representan el mecanismo interno asociado. El shell actual (PID=201) se duplica (1). El shell hijo (PID=205) se ocupa primeramente de la redirección (2) y se duplica a continuación para la ejecución del comando externo date (5). Cuando este ha terminado (7), se duplica de nuevo para ejecutar ls (8). Mediante el mecanismo de herencia, ...