En PC Resumen vamos a hablar en este artículo de los Generalizadores en Bash, estos nos facilitan mucho el trabajo ahorrando teclear código de más. Existen dos tipos de "Generalizadores", los "Globales" y "Las expansiones".
Globales
- "∼": Le indica a Bash que es el directorio "home" del usuario.
- "*": Significa todo lo que se pueda incluir. Por ejemplo si hacemos el comando "ls *.sh" nos listará todos aquellos ficheros que contengan cualquier cosa delante del "*" y terminen en ".sh".
- ".": El punto significa que le indicamos al terminal que use el directorio que estamos trabajando ahora para ejecutar algún fichero, como ahora los scripts en Bash.
Veamos un ejemplo donde apliquemos estos tres "Generalizadores":
#!/bin/bash
# En este Script vamos a usar los generalizadores globales "~", "*" y ".".
echo "Mi directorio home es:" ~ # Mostrará la ruta absoluta del directorio home del usuario activo.
ls ~/Imágenes/*.jpg # Listará todos los ficheros que terminen en ".jpg" en la ruta del directorio de imágenes del home del usuario.
./hola-mundo.sh # Ejecutará en la ruta donde estamos trabajando actualmente en el terminal el script hola-mundo.sh que hicimos de ejemplo.
Expansiones
Las "Expansiones" son mucho más configurables y se usan con los argumentos mucho mas definidos que en los "Globales". Cuando indicamos una lista de valores separados por comas entre llaves {texto1, texto2, ...} Bash la expande convirtiéndola en una cadena expandida con cada uno de los argumentos definidos dentro de las llaves. Veamos un ejemplo donde se aplican las "Expansiones":
#!/bin/bash
# En este Script vamos a usar los generalizadores de expansión, haremos un echo con cuatro palabras entre llaves.
echo En PC Resumen aprendo scripts en\ {Bash,Python,Java,.Net}\
Con esto terminamos el artículo de "Generalizadores en Bash". En el próximo artículo hablaremos de las "Operaciones Aritméticas y la Lógica en Bash". Si tenéis alguna duda, os podéis poner en contacto con nosotros a través del formulario de contacto de la Web o bien, escribiendo un E-mail a Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo..