martes, 6 de febrero de 2007

Colas de comandos

Hola a todos nuevamente, hoy les dejo un importante proceso, el de las colas de comandos en la shell.

Cuando está trabajando, puede alguna vez querer ejecutar un montón de comandos y dedicar su atención de nuevo a otra cosa (digamos centericq, por ejemplo). El tipo de orden que de depende de una cosa: la relación entre los comandos. Si el resultado de un comando no influye en el comando siguiente, basta usar el símbolo ; para separar comandos en una línea. Si en cambio usted está haciendo una tarea (como compilar el núcleo) que necesita que cada uno de los comandos tenga éxito antes de empezar el siguiente, usará el símbolo &&.

Por ejemplo:

[lester@Centos lester]$ cd docs/foo/ ; ls ~
borrados.log docs/ tmp/ xcdroast/
[lester@Centos foo]$

Nos lleva al directorio ~/docs/foo (como se ve por el prompt) y además muestra los archivos del directorio personal. Pero note esto:

[lester@Centos foo]$ cd docs/foo/bar/ ; ls ~
-bash: cd: docs/foo/bar/: No such file or directory
borrados.log docs/ tmp/ xcdroast/
[lester@Centos foo]$

Aquí, aunque la primera orden tiene un error (no existe el directorio bar dentro de foo) la segunda orden sigue cumpliéndose.

Una última nota antes de seguir: cuando vea scripting en otros lenguajes, como perl, python o PHP, notará que el punto y coma se usa para separar comandos de la misma manera.

Ahora veamos el segundo modo con un ejemplo: compilar un programa es una tarea que implica una serie de pasos, y cada uno de ellos debe completarse sin errores para pasar al siguiente, y por eso usamos &&: sólo se pasa a la segunda etapa si la primera terminó correctamente:

[root@Centos foo]# ./configure && make && make install

Compilará correctamente el programa, o se detendrá al primer error. Note que estamos logueados como el usuario root para poder ejecutar make install normalmente.

Espero que les haya resultado de gran utilidad… ;)

Salu2,

Lester Espinosa Martínez

No hay comentarios: