¿Te ha servido este sitio alguna vez? Cada script, cada línea de ayuda aquí es fruto de horas de trabajo y pasión por compartir. Si alguna vez resolviste un problema gracias a esta página, considera hacer una donación. Tu aporte —por pequeño que sea— mantiene vivo este proyecto y me impulsa a seguir creando.
Gracias por creer en el conocimiento libre.
Comentarios recientes
- Gonzalo Reiser A. en BASH- Plugin NAGIOS para monitorear procesos.
- jesse en BASH- Plugin NAGIOS para monitorear procesos.
- Sebastian en LINUX – Conexión sin clave, Relación de confianza, conectarse vía SSH, ejecutar comando remotos sin clave.
- Gonzalo Reiser A. en BASH – Script MENU en colores (Sencillo).
- Monty en BASH – Script MENU en colores (Sencillo).
Archivos
- noviembre 2025 (1)
- octubre 2025 (1)
- septiembre 2025 (1)
- agosto 2025 (3)
- julio 2025 (1)
- mayo 2025 (2)
- abril 2025 (4)
- marzo 2025 (1)
- febrero 2025 (1)
- enero 2025 (15)
- diciembre 2024 (1)
- noviembre 2024 (2)
- agosto 2024 (1)
- julio 2024 (12)
- enero 2024 (10)
- diciembre 2023 (1)
- noviembre 2023 (10)
- septiembre 2023 (5)
- agosto 2023 (10)
- junio 2023 (3)
- mayo 2023 (4)
- abril 2023 (10)
- febrero 2023 (3)
- enero 2023 (1)
- diciembre 2022 (2)
- noviembre 2022 (1)
- agosto 2022 (4)
- julio 2022 (1)
- junio 2022 (4)
- febrero 2022 (9)
- abril 2021 (1)
- enero 2021 (3)
- diciembre 2020 (2)
- noviembre 2020 (2)
- octubre 2020 (1)
- septiembre 2020 (4)
- agosto 2020 (1)
- julio 2020 (1)
- junio 2020 (5)
- mayo 2020 (12)
- abril 2020 (1)
- enero 2020 (1)
- noviembre 2019 (5)
- octubre 2019 (4)
- septiembre 2019 (1)
- agosto 2019 (1)
- julio 2019 (11)
- junio 2019 (1)
- julio 2018 (3)
- octubre 2017 (1)
- septiembre 2017 (2)
- agosto 2017 (3)
- julio 2017 (11)
- mayo 2017 (6)
- abril 2017 (3)
- marzo 2017 (7)
- febrero 2017 (1)
- diciembre 2016 (3)
- octubre 2016 (4)
- septiembre 2016 (2)
- agosto 2016 (10)
- julio 2016 (9)
- junio 2016 (9)
- mayo 2016 (27)
- abril 2016 (10)
- marzo 2016 (15)
- enero 2016 (3)
- diciembre 2015 (7)
- octubre 2015 (2)
- septiembre 2015 (3)
- agosto 2015 (9)
- julio 2015 (11)
- junio 2015 (22)
- mayo 2015 (7)
- abril 2015 (22)
- marzo 2015 (5)
- febrero 2015 (2)
- enero 2015 (10)
- diciembre 2014 (7)
- noviembre 2014 (3)
- octubre 2014 (2)
- septiembre 2014 (4)
- agosto 2014 (22)
- julio 2014 (15)
- junio 2014 (8)
- mayo 2014 (6)
- abril 2014 (10)
- marzo 2014 (15)
- febrero 2014 (3)
- enero 2014 (15)
- diciembre 2013 (11)
- noviembre 2013 (25)
- octubre 2013 (46)
- septiembre 2013 (30)
Archivo de la categoría: Unix – Linux
BASH – Manejo de cadenas de texto.
A veces se encuentran ciertas limitaciones a la hora de escribir scripts de shell en el manejo de cadenas y es que, muchas veces, nos olvidamos de que bash tiene un montón de operaciones sobre strings. Por ejemplo:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# Cadena de ejemplo: string=123.abc.456.ABC.123 # Ver la longitud de la cadena $ echo ${#string} 19 # Extraer subcadena desde una posicion $ echo ${string:4} abc.456.ABC.123 # Extraer subcadena de longitud determinada # desde una posicion $ echo ${string:4:7} abc.456 # Eliminar la cadena coincidente del principio de la cadena $ echo ${string#123} .abc.456.ABC.123 # Eliminar la cadena coincidente del final de la cadena $ echo ${string%123} 123.abc.456.ABC. # Reemplazar la primera aparación de una subcadena en la cadena $ echo ${string/123/QWE} QWE.abc.456.ABC.123 # Reemplazar todas las apariciones de una subcadena en la cadena $ echo ${string//123/QWE} QWE.abc.456.ABC.QWE # Reemplazar si hay coincidencia al pricipio o al final de la cadena: $ echo ${string/#123/QWE} QWE.abc.456.ABC.123 $ echo ${string/%123/QWE} 123.abc.456.ABC.QWE # Longitud de la coincidencia al principio de la cadena (dos formas) $ expr match "$string" '123' 3 $ expr "$string" : '123' 3 |
Otra … Sigue leyendo
Publicado en Unix - Linux
4 comentarios
BASH – Usar ficheros de plantillas (templates) con Bash Script.-
Si tenemos ficheros de plantillas en los que hemos definido algunas variables y queremos obtener el fichero tras aplicar la sustitución de las variables, podriamos emplear el comando “eval” de la siguiente manera.
|
1 |
eval "echo \"$(cat /ruta/a/la/plantilla)\"" |
Por ejemplo, podriamos tener un fichero … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Script ejemplo array asociativo.-
Para poder trabajar con arrays asociativos, se debe tener instalado version 4 o superior de BASH :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#!/opt/csw/bin/bash #DEclarar un array asociativo declare -A capital #Esta es una fomra de llenar el array capital=([UK]="London" [Japan]="Tokyo") #Esta es otra capital[Germany]="Berlin" capital[China]="Beijing" #Para agregar datos a un array capital+=([Belgium]="Brussels" [Egypt]="Cairo") #Muestra el numero de elementos del array echo "Size: ${#capital[@]}" #Para mostrar la capiotal de Alemania echo "Capital de Alemania : ${capital[Germany]}" #Iterar sobre el array mostrando la clave y su valor echo "Pais -> Capital" for country in "${!capital[@]}" do echo "$country -> ${capital[$country]}" done |
Al ejecutra este script, nos mostyrara el siguiente resultado
|
1 2 3 4 5 6 7 8 9 |
Size: 6 Capital de Alemania : Berlin Pais -> Capital UK -> London Germany -> Berlin Belgium -> Brussels China -> Beijing Japan -> Tokyo Egypt -> Cairo |
Publicado en Unix - Linux
Deja un comentario
BASH – Cómo procesar múltiples argumentos de entrada en scripts para Bash
Podemos hacer bucles que recorran los argumentos de entrada de nuestro programa, por ejemplo:
|
1 2 3 4 5 6 7 |
#!/bin/bash CONTADOR=0 for i in "$@" do let CONTADOR=$CONTADOR+1 echo "Argumento $CONTADOR: $i" done |
La parte del contador no es estrictamente necesaria, pero da un toque de distinción. Desde aquí hemos recorrido todos los argumentos del programa, ya podremos … Sigue leyendo
Publicado en Unix - Linux
Deja un comentario
BASH – Script para copiar y verificar la copia de archivos con MD5 en Solaris.-
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/bash echo "Verifico el tamaño del archivo local:" VAR1=`du -sk /ruta/al/archivo` echo "Copiando el archivo al servidor remoto:" scp /ruta/al/archivo server:/ruta/remota/al/archivo echo "Verifico el tamaño del archivo remoto:" VAR2=`ssh server du -sk /ruta/remota/al/archivo` echo "Verifico el md5 del archivo local:" VAR3=`digest -v -a md5 /ruta/al/archivo | cut -d "=" -f2` echo "Verifico el md5 del archivo remoto" VAR4=`ssh server digest -v -a md5 /ruta/al/archivo | cut -d "=" -f2` if [ "$VAR1" = "$VAR2" ]; then echo "Tamanos iguales." else echo "Tamano incorrecto - Copia incorrecta !!" fi if [ "$VAR3" = "$VAR4" ]; then echo "Hashes iguales." echo "La copia ha finalizado correctamente." else echo "Tamano incorrecto - Copia incorrecta !!" fi |
Publicado en Unix - Linux
Deja un comentario