17 años en Internet

13 julio 2011

#!/bin/bash

El otro día me encontraba programando un gigantesco script de bash cuando un compañero de trabajo le dio por ojear mi pantalla. El chico trabaja en otro departamento y se quedó extrañado al ver una shell maximizada funcionando con vi... y más con el set number activo y con más de varios centenares de líneas contadas.

- ¿Eso no será un script en bash?
- Sí, no hay nada mejor que bash.
- Ahora mismo te podría decir cincuenta lenguajes mejores.
- Te desafío a hacerlo.

Y fue nombrando lenguajes y lenguajes... y debo reconocer que quedó cómica la conversa, pero a día de hoy sigo considerando que los scripts de bash son un objeto de culto que merecen el mejor de los reconocimientos.

Meditad, un shell script es lo más parecido que existe a la filosofía del software libre. Por un lado sabes que tu código puede funcionar en cualquier plataforma Unix sin necesidad de ser compilado, ya sea en un Intel a 32 bits, un AMD a 64, un PowerPC o un ARM. Por otro puedes editarlo, modificarlo, mejorarlo y redistribuirlo, puesto que nada te impide ojear su código fuente.

Además como herramienta es terríblemente potente y cuando en C o en Java necesitas incluir la librería de turno (incluso para hacer un printf), aquí simplemente puedes hacer uso de los programas disponibles en cualquier sistema Unix: que si echo, awk, grep, expect, tail, redirecciones... sin hablar de poder lanzar hijos sin necesidad de crear un fork al que ejecutarle un exec. Incluso con la sentencia trap puedes programarle comandos para que se disparen al saltar una señal del sistema. Y todo eso sin requerir de ningún SDK al más puro estilo .net.

Por favor, hagan un monumento a los creadores de Bash.

1 comentario:

Si te ha gustado la entrada o consideras que algún dato es erróneo o símplemente deseas dar algún consejo, no dudes en dejar un comentario. Todo feedback es bienvenido siempre que sea respetuoso. También puedes contactarme vía Twitter @Hamster_ruso si lo consideras necesario.