Archive for the ‘Shell Script’ Category

Tutorial de bash: Hola mundo en bash

Bash, es un shell de Unix (un interprete de ordenes, pues) creado para el proyecto GNU. En conjunto con otras utilidades propias también de GNU, bash es una herramienta realmente poderosa y que vale la pena conocer. Es particularmente útil cuando se quiere trabajar con archivos y carpetas, con texto o con algunas particularidades de nuestro sistema operativo y no se quiere repelar con las características de un lenguaje de programación en especifico en estos temas.

Se puede hacer, por ejemplo:
Un programa que baje el código fuente de una pagina que tiene listados los links de algo que queremos bajar, la lea, identifique y extraiga los links que nos interesan en un archivo, y los descargue con la posibilidad de reanudar su tarea, justo después del último archivo descargado…
Añadir o quitar lineas del código fuente de algún programa para distintos propósitos de programación indicados con parámetros…
Compilar y hacer pruebas en toda una carpeta de proyectos…
Guardar archivos binarios completos dentro del .sh y después extraerlos (esto es común en la instalación de programas)…
y un LARGUÍSIMO etc.

Aprender bash es un tema extenso pero no extremadamente difícil y accesible a todos, pues muy seguramente si tienes instalado GNU/Linux, ya cuentas con un interprete de Bash.
Aquí un código sencillo y sin chiste que puedes copiar en el editor de texto tu preferencia:

#!/bin/bash
echo "Hola mundo!!"

Así de fácil.
El nombre con el que debe se ser guardado, no tiene otra restricción que la nuestro SO imponga. Por convención, lleva el sufijo “.sh”
Ahora vamos al complejísimo linea por linea:

#!/bin/bash

Indica la dirección en donde se encuentra el interprete de bash que vamos a usar. Si sale un error como “Command not found.” es por que está mal (Más adelante se verá como corregir esto).
El “#” es el símbolo reservado para hacer comentarios y el “!” indica que esa linea es la dirección al interprete.

echo "Hola mundo!!"

“echo” es una de las utilidades de shell que imprime lineas de texto. Aquí puse comillas respetando una buena practica y por convención, pero el “Hola mundo!!” así como cualquier texto puede no llevarlas.

Solo falta hacer nuestro archivo ejecutable, lo cual es posible con el siguiente comando:

$ chmod +x mibash.sh

Para ejecutarlo, hay que escribir:

$ ./mibash.sh

El “./” es lo mismo que poner el directorio actual. De estar en algún otro lugar, debe ponerse la dirección completa (como cualquier archivo ejecutable en GNU/Linux):

$ /home/usuario/mibash.sh

¿Cómo saber donde está mi interprete?
Hay varias maneras:

$ which bash > mibash.sh

Este comando pone en un archivo la dirección del interprete predeterminado del sistema en el archivo “mibash.sh”. Es cuestión de ponerle un “#!” al principio y listo.

Se puede buscar tecleando:

$ sudo find ./ -name bash

Algunas de las locaciones comunes son las siguientes:

/bin/bash
/sbin/bash
/usr/local/bin/bash
/usr/bin/bash
/usr/sbin/bash
/usr/local/sbin/bash

Por ahora es nada todo.

Algunas cosas las vi en este sitio