Archivo mensual: julio 2017

BASH – Eliminar espacios en blanco sobrantes de una variable. (Espacios adelante y atras)

Eliminar los espacios por delante y por detrás, pero no por dentro, directamente dentro del script Bash, el código resultante es un poco confuso: #!/bin/bash var=” prueba prueba prueba ” echo “\”$var\”” var=”${var#”${var%%[![:space:]]*}”}” # elimina los espacios por delante var=”${var%”${var##*[![:space:]]}”}” … Sigue leyendo

Publicado en Unix - Linux | Deja un comentario

BASH – Cómo comprobar si un array de bash contiene un elemento.-

Lamentablemente no existe ninguna manera sencilla de hacerlo, pero sí que puedes utilizar la siguiente función: function contiene() { local n=$# local value=${!n} for ((i=1;i < $#;i++)) { if [ “${!i}” == “${value}” ]; then echo “y” return 0 fi … Sigue leyendo

Publicado en Unix - Linux | Deja un comentario

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: # Cadena … Sigue leyendo

Publicado en Unix - Linux | Deja un comentario

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. eval “echo \”$(cat /ruta/a/la/plantilla)\”” Por ejemplo, podriamos … 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 : #!/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” … Sigue leyendo

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: #!/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 … Sigue leyendo

Publicado en Unix - Linux | Deja un comentario

BASH – Script para copiar y verificar la copia de archivos con MD5 en Solaris.-

#!/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:” … Sigue leyendo

Publicado en Unix - Linux | Deja un comentario

BASH – Script para matar multiples procesos en una sola linea.-

for i in `ps aux | grep “/tmp/prueba.sh” | awk ‘{print $2}’`; do kill -9 $i; done

Publicado en Unix - Linux | Deja un comentario

BASH – Listar archivos con ruta completa en linea de comandos.-

for i in `ls`; do echo $PWD/$i | grep -v 2014 | grep -v 2015 | grep -v 2016 | grep -v 2017 ; done

Publicado en Unix - Linux | Deja un comentario

BASH – Script para renombrar archivos (sencillo).-

#!/bin/bash # renombra.sh # renombrador de ficheros básico criterio=$1 expresion=$2 sustituto=$3 for i in $( ls *$criterio* ); do orig=$i dest=$(echo $i | sed -e “s/$expresion/$sustituto/”) mv $orig $dest done

Publicado en Unix - Linux | Deja un comentario

BASH – Script ejemplo ciclo UNTIL

#!/bin/bash MAX_WAIT=80 DELAY=10 TOTAL_WAIT=0 until [ $TOTAL_WAIT -gt $MAX_WAIT ] do echo $TOTAL_WAIT sleep $DELAY let TOTAL_WAIT=$TOTAL_WAIT+$DELAY; done

Publicado en Unix - Linux | Deja un comentario