Antes que nada quisiera disculparme, ya que el viernes pasado no pude escribir el post así que hoy agregare un extra para reponer el día perdido.
Brace Expansion
En Español expansión de llaves me parece que es una función inspirada por C Shell, esta genera combinaciones entre los caracteres que se ingresen dentro de las llaves, el orden que usa es de izquierda a derecha. No tiene nada de complicado pero es una opción que nos será muy útil en nuestros recorridos por GNU/Linux.
Ejemplo:
$ echo a{1,2,3}
a1 a2 a3
Cuando se usa con comas (,) genera combinaciones entre el valor a y los valores dentro de las llaves. Si no existiera un valor fuera de las llaves solo mostraría una vez cada valor que contiene la llave.
$ echo {a,b,c}
a b c
No es nada complejo su uso, existen otros ejemplo mas comunes como crear muchos directorios en una carpeta
$ mkdir ~/Trabajos/{uno,dos,tres,cuatro,cinco}
Esto crea cinco carpetas dentro de la carpeta trabajos, es como ingresar un comando a la vez. Creando los 5 directorios.
Existen expansión por dos puntos .. esto crea una serie de números o caracteres que van de el valor inicial a el valor final, no se deben usar números con letras.
$ echo {1..5} #Correcto
1 2 3 4 5
$ echo {a..f} #Correcto
a b c d f
$ echo {a..5} #Incorrecto
{a..5}
#Creo que nunca me acostumbrare a este color azul en la letra
Podemos ahorrar tiempo al crear un ciclo for
#En lugar de escribir
$ for (( i=1; i<=5; i++ )); do echo "Mi numero $i"; done
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
#Ahorramos código usando brace expansion.
$ for i in {1..5}; do echo "Mi numero $i; done
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
#Claro que es valido usar aunque la salida es diferente.
$ echo "Mi numero "{1..5}
Mi numero 1 Mi numero 2 Mi numero 3 Mi numero 4 Mi numero 5
Bueno creo que ya quedo claro el concepto haha ahora solo comentare que es combinable y anidado ¿A que me refiero con esto?
Con combinable a que podemos juntar una o mas llaves
$ echo {a..c}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3
Con anidado como muchos imaginaran puedes usar llaves de expansion dentro de llaves de expansión
$ echo {a,c{1..3},d}
a c1 c2 c3 d
Y por ultimo desde Bash 4 es posible incrementar los valores.
$echo {0..20..2}
0 2 4 6 8 10 12 14 16 18 20
Esto es todo por hoy, así que gracias por leerme gente
Extra
Como crear un bin local
Cuando digo un bin local me refiero a un directorio en el que tengamos scripts propios y sea posibles ejecutarlos como un simple comando…
Logar esto es relativamente fácil, lo primero que se necesita hacer es crear un directorio donde guardaremos los scripts.
mkdir ~/.bin #En este ejemplo estará oculta
Ahora tenemos nuestra carpeta para guardar los script pero no funcionara hasta que agregamos la ruta de el nuevo .bin a $PATH
Para esto se edita el archivo bash_profile, y se agrega la linea.
export PATH=$PATH:~/.bin
Y listo eso es suficiente para crear un bin local, claro que pedirá permisos de root si es necesario para un ejemplo escribimos un script rápido.
#!/bin/bash
echo "Hola $1, ¿Como estas?"
Guardarlo con el nombre de hola
A el script se le da permiso de ejecución y solo bastara llamarlo desde la terminal
$ hola wada
#Esto mostrara el mensaje
Hola wada, ¿Como estas?
Así con este truco rápido podrás ejecutar mas rápidos tus scripts
Eso es todo por hoy gente que estén bien
P.D. Disculpen los errores si los hay los ojos ya se me cierran hahaha
The post Viernes de Terminal: Bash [Expansión de Llaves] appeared first on Desde Linux.
Continúar leyendo...
Brace Expansion
En Español expansión de llaves me parece que es una función inspirada por C Shell, esta genera combinaciones entre los caracteres que se ingresen dentro de las llaves, el orden que usa es de izquierda a derecha. No tiene nada de complicado pero es una opción que nos será muy útil en nuestros recorridos por GNU/Linux.
Ejemplo:
$ echo a{1,2,3}
a1 a2 a3
Cuando se usa con comas (,) genera combinaciones entre el valor a y los valores dentro de las llaves. Si no existiera un valor fuera de las llaves solo mostraría una vez cada valor que contiene la llave.
$ echo {a,b,c}
a b c
No es nada complejo su uso, existen otros ejemplo mas comunes como crear muchos directorios en una carpeta
$ mkdir ~/Trabajos/{uno,dos,tres,cuatro,cinco}
Esto crea cinco carpetas dentro de la carpeta trabajos, es como ingresar un comando a la vez. Creando los 5 directorios.
Existen expansión por dos puntos .. esto crea una serie de números o caracteres que van de el valor inicial a el valor final, no se deben usar números con letras.
$ echo {1..5} #Correcto
1 2 3 4 5
$ echo {a..f} #Correcto
a b c d f
$ echo {a..5} #Incorrecto
{a..5}
#Creo que nunca me acostumbrare a este color azul en la letra
Podemos ahorrar tiempo al crear un ciclo for
#En lugar de escribir
$ for (( i=1; i<=5; i++ )); do echo "Mi numero $i"; done
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
#Ahorramos código usando brace expansion.
$ for i in {1..5}; do echo "Mi numero $i; done
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
#Claro que es valido usar aunque la salida es diferente.
$ echo "Mi numero "{1..5}
Mi numero 1 Mi numero 2 Mi numero 3 Mi numero 4 Mi numero 5
Bueno creo que ya quedo claro el concepto haha ahora solo comentare que es combinable y anidado ¿A que me refiero con esto?
Con combinable a que podemos juntar una o mas llaves
$ echo {a..c}{1..3}
a1 a2 a3 b1 b2 b3 c1 c2 c3
Con anidado como muchos imaginaran puedes usar llaves de expansion dentro de llaves de expansión
$ echo {a,c{1..3},d}
a c1 c2 c3 d
Y por ultimo desde Bash 4 es posible incrementar los valores.
$echo {0..20..2}
0 2 4 6 8 10 12 14 16 18 20
Esto es todo por hoy, así que gracias por leerme gente
Extra
Como crear un bin local
Cuando digo un bin local me refiero a un directorio en el que tengamos scripts propios y sea posibles ejecutarlos como un simple comando…
Logar esto es relativamente fácil, lo primero que se necesita hacer es crear un directorio donde guardaremos los scripts.
mkdir ~/.bin #En este ejemplo estará oculta
Ahora tenemos nuestra carpeta para guardar los script pero no funcionara hasta que agregamos la ruta de el nuevo .bin a $PATH
Para esto se edita el archivo bash_profile, y se agrega la linea.
export PATH=$PATH:~/.bin
Y listo eso es suficiente para crear un bin local, claro que pedirá permisos de root si es necesario para un ejemplo escribimos un script rápido.
#!/bin/bash
echo "Hola $1, ¿Como estas?"
Guardarlo con el nombre de hola
A el script se le da permiso de ejecución y solo bastara llamarlo desde la terminal
$ hola wada
#Esto mostrara el mensaje
Hola wada, ¿Como estas?
Así con este truco rápido podrás ejecutar mas rápidos tus scripts
Eso es todo por hoy gente que estén bien
P.D. Disculpen los errores si los hay los ojos ya se me cierran hahaha
The post Viernes de Terminal: Bash [Expansión de Llaves] appeared first on Desde Linux.
Continúar leyendo...