Jueves, 12 de noviembre de 2009
piponazo

Hace tiempo pensé en escribir esta entrada pero se me han adelantado. Sin embargo el contenido de ese enlace está en inglés, y no todos conocen el lenguaje de shakespeare. En esta entrada os dejo una traducción de dicho artículo con algunas ligeras diferencias.
Leer más…
GD Star Rating
loading...
Miércoles, 11 de noviembre de 2009
piponazo

Bueeeno, como al final no os ha parecido una tontería el anterior post (al menos a un par de personas) os dejo también este indicador de progreso para vuestros scripts en bash. Fijaos en que la función calc ya la comenté en un post anterior. Básicamente a la variable OPERATIONS le asignamos el número de operaciones a realizar, en este caso el número de ficheros existentes en un directorio. A la variable INCPROGRESS le asignamos el incremento de progreso que añadimos en cada operación, y dentro del bucle vamos sumando y mostrando el progreso. Debido a que bash parece que no se lleva muy bien con los números reales, al final del bucle el progreso estará a un 99′XX por ciento, por lo que podemos optar al final por limpiar la línea actual de la terminal y mostrar nuestro anhelado 100% de progreso
.
#!/bin/bash
function calc()
{
echo "scale=4; $@" | bc ;
}
PROGRESS=0.0
OPERATIONS=`ls $DIR | awk '{count++} END {print count}'`
INCPROGRESS=`calc 100.0/$OPERATIONS`
for i in `ls $DIR`
do
#Operación sobre $i
PROGRESS=`calc $PROGRESS+$INCPROGRESS`
echo -n -e "\rProgress: $PROGRESS %"
done
tput el1 #Limpia la línea
echo -n -e "\rProgress: 100%"
GD Star Rating
loading...

Última actualización: 20/09/2011
Voy a empezar hoy una nueva categoría denominada Scripting para introducir algunas líneas de comandos o scripts que pueden ser útiles para realizar algunas de las tareas que más solemos necesitar la gente que trabajamos a menudo con los bash scripts.
Aquí os dejo una sencilla línea que debería funcionar en cualquier distribución GNU/Linux. Simplemente busca la palabra cores en el fichero /proc/cpuinfo e imprime el cuarto campo de dicha línea. Después de esto ejecuto el comando exit para terminar la ejecución del programa, ya que si tenemos un procesador con varios núcleos, sin el comando exit nos aparecería el número de núcleos tantas veces como núcleos tengamos.
awk '/cores/ {print " ", $4; exit} ' /proc/cpuinfo
Recuerda si quieres asignar el número de cores a una variable tendras que escribir una línea parecida a la siguiente:
THREADS=`awk '/cores/ {print " ", $4; exit} ' /proc/cpuinfo`
En caso de que dispongamos de uno de los nuevos procesadores de intel (iCore 7, Xeon o similares) que cuentan con la característica de poder ejecutar dos hilos por núcleo, en el fichero /proc/cpuinfo nos mostrará que disponemos de 8 procesadores aunque el campo cores seguirá mostrando 4. Para trabajar con los 8 hilos en vez de con 4 podemos utilizar el siguiente comando:
THREADS=$((`awk '/processor/ {print " ", $3;} ' /proc/cpuinfo | tail -n 1` + 1))
GD Star Rating
loading...
Sábado, 19 de septiembre de 2009
piponazo

Si eres de los que manejan a menudo la consola de GNU/Linux y necesitas a constantemente hacer uso de una calculadora para realizar operaciones algo complejas, puedes usar tu terminal bash para dicho propósito. Hoy en día cualquier entorno de escritorio trae una calculadora decente con el que poder realizar dichas operaciones, pero para realizar operaciones sencillas puede que no merezca la pena desperdiciar unos segundos en tener que buscar la aplicación y abrirla. Leer más…
GD Star Rating
loading...
Martes, 8 de septiembre de 2009
piponazo

Hacía tiempo que no me encontraba con un problema de bash script de los que hacen rebanarte los sesos y tirarte un buen rato googleando para hallar la solución. Pero como podéis imaginar si escribo acerca de ello es que he conseguido darle solución, y a continuación os lo contaré con todo gusto, que después de un tiempo sin escribir en el blog debido a mis bien merecidas vacaciones, ya tenía ganas de escribir algo
. Leer más…
GD Star Rating
loading...
Últimos comentarios