LesOlivex

Serveis informàtics



Hacer que funcione thinkbox con versiones nuevas de jquery

Category : Diseño web, Programación gen 27th, 2015

Para que funcione el sistema de galerías de imágenes de thinkbox con versiones posteriores de jquery 1.2 se debe realizar un cambio en thinkbox.js

Modificando la linea:

TB_TempArray = $("a[@rel="+imageGroup+"]").get();

Eliminando la arroba, quedando:

TB_TempArray = $("a[rel="+imageGroup+"]").get();

zenity

Category : bash gen 22nd, 2015
zenity

Zenity nos puede servir para aquellos scripts que lanzamos en segundo plano y no vemos la salida que produce el…

wget para comprobar errores en páginas web

Category : Diseño web, Programación gen 22nd, 2015

Comprobar paginas del servidor

wget --spider -r -l3 http://lesolivex.com/ -o errores.txt 

Comprobar enlaces rotos

wget --spider -r -l2 -nv http://lesolivex.com -o enlaces_rotos.txt

Leer archivo linea por linea en bash

Category : bash gen 22nd, 2015
while read linea ; do 
echo linea: $linea
read -p '[ENTER] para continuar' tecla </dev/tty
done < .bash_profile

Filtrar por columnas con colrm

Category : bash gen 22nd, 2015
ls -l | colrm 1 20

Elimina las columnas de la 1 a la 20

Cortar lineas con cut

Category : bash gen 22nd, 2015

Con cut podemos cortar las lineas de un fichero de diferentes maneras:

echo "Eduardo Magrané" | cut -c3 # Devuelve el carácter numero 3 (la u)

echo "Eduardo Magrané" | cut -d' ' -f2 # Devuelve el apellido

Opciones:
-c puede recibir un patrón -c3-5 sera del 3 al 5
-d Indicas el limitador entre campos
-f Numero de campos también puede ser un patrón.

Saber si estamos en una consola desde bash

Category : bash gen 22nd, 2015
if [ `tty` ] ; then
   echo 'Estamos en consola'
else
   xterm -e "echo No estamos en consola; read"
   echo 'No estamos en consola'
fi

Colocando esta linea en la cabecera de un script conseguimos detectar si estamos en consola, y en caso de no estarlo nos lanza una terminal

[[ `tty` ]] || ( ( exec ${TERM:-xterm} -e "$0 $* ; read" & ) ;  exit )

Con ${TERM:-xterm} en caso de tener una terminal definida se lanzara con ella sino con xterm

bash archivos con espacios

Category : bash gen 11th, 2015

Trabajar con archivos que contienen espacios puede ser un dolor de cabeza con bash.

Aquí dejo un ejemplo de como hacerlo.

En este ejemplo vamos a buscar los archivos que subversion nos indica que han sido modificados:

# Se definie el fin de linea como el separador entre parámetros
DIFS="$IFS" ; IFS=$'\n'
echo
for x in $(svn status | grep ^M | awk -v FS='M      ' '{printf "\n%s",$2}') ; do
   echo - "$x"
   parametros="$parametros '$x'"
done
IFS="$DIFS"
echo
read -n 1 -s -p 'Añadir (s/n): ' OPCION
if [ "$OPCION" = 's' ] ; then
   cmd="$cmd $parametros" ; eval $cmd
fi

Añadimos en un array los archivos recibidos:

declare -a e_archivos_seleccionados=()
c=0
while [ -n "$1" ]; do
   echo - "$c) $1"
   e_archivos_seleccionados[$c]="$1"
   shift 1
   let c=c+1
done

Añadimos lista de archivos a base de datos:

for c in `seq 0 ${#e_archivos_seleccionados[*]}` ; do

   x="${e_archivos_seleccionados[$c]}"
   echo "- $x"
   # Comprobar que no este ya en la base de datos
   SQL="SELECT nombre from rMovimientoArchivos WHERE nombre='$x' AND idMovimiento=$movimientoId"
   SALIDA=`ejecutarSQL "$SQL" "-N"`

   if [ "$SALIDA" != "$x" ] ; then

     SQL="INSERT INTO rMovimientoArchivos VALUES ($movimientoId,'$x')"
     ejecutarSQL "$SQL"
     if [ "$?" != "0" ] ; then
        mensajes "Archivo: $x no fue añadido a movimiento: $movimientoId"
     else
        mensajes "Archivo: $x añadido a movimiento: $movimientoId"
     fi

   fi

done

Pasar un array de archivos a un comando colocando comillas para que no de problemas.:

parametros="$(for n in `seq 0 $((${#aSALIDA[*]}-1))` ; do echo -n "'${aSALIDA[$n]}' " ; done)"
cmd="$mt_editor_dev $parametros"
eval "$cmd"

Uso de variables en bash

Category : bash gen 11th, 2015

Variables variables:

a=${!variable}

Si no existe una cogemos la otra:

${!variable:-NULL}

Ubicación real de script en bash

Category : bash gen 11th, 2015

Nos aseguramos que el directorio de la aplicación es realmente el suyo y no el de un enlace simbólico.

# Si es un enlace hay que buscar el directorio de programas sobre al que apunta
if [ -L "$0" ] ; then
   DIR_PROGRAMAS=$(dirname "`readlink $0`")
else
   DIR_PROGRAMAS=$(dirname "$0")
fi