Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Portada » Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 6 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 05, 2011 12:37 am
Mensajes: 17

Nota Publicado: Lun Abr 09, 2012 2:20 pm 
Arriba  
Buenas

Gracias a todos los que quieran ayudarme.
Estoy liado con un proyecto que tenía pendiente y es el siguiente:
Crear una barra de progreso en zenity y adaptarla a un script del que ya dispongo.
El tema es que ya he conseguido crear la barra de progreso pero la información que me da quiero aparezca más elegante (colores, negritas, font ...)

La parte del script que quiero adaptar es la siguiente:

Código:
cat <<EOF
$PCT
#Archivos a Descomprimir: $FILES_ARRAY \n\
Nº de Archivos a Descomprimir: $NUMBER_FILES_ARRAY\n\
Nº de Archivo actual: $index \n\
Archivo Actual: $f \n\
Nº Total de Archivos: $nrar \n\
Descomprimiendo Archivo nº: $i \n\
Descomprimiendo: $file
EOF

Paso lo que tengo actualmente del script por si sirve de ayuda:

#!/bin/bash
# Script para descomprimir usando dialog

# Permite los nombres de ficheros tipo windows
IFS=

# Recorre los archivos pasados como parametros (FILES) y los incluye en un
# array llamado PARAMETERS
for FILES in $@
do
PARAMETERS=(${PARAMETERS[@]} $FILES)
done

# Muestra un progress bar con las siguientes opciones:
# --no-shadow = Sin sombra - Esto es porque se ve mal en ttys y xterm
# --colors = colores - Colorear los textos
# 25 80 - height width - Para ttys y xterm
#dialog --no-shadow --colors --title "Descomprimir" --backtitle "Descomprimiendo Archivos" --gauge "Descomprimiendo Archivos" "25" "80"< <(
zenity --progress --text="" --height=200 --width=600 --no-cancel< <(
# VARIABLES AL INICIO
# Obtiene el nombre de los archivos pasados como parametros y
# guardados en el array
FILES_ARRAY=${PARAMETERS[@]}
# Obtiene el nº de archivos en el array
NUMBER_FILES_ARRAY=${#PARAMETERS[*]};
# Contador usado en la variable PERCENTAGE. Se inicializa a 0
i=0
# Obtiene el nº de fichero que está siendo descomprimido
# Se inicializa a 0
let index=0

# Start Loop para obtener datos necesarios recorriendo el array
for f in ${PARAMETERS[@]}
do
# Se obtiene el nº de fichero a descomprimir
let index=$index+1
# Se obtiene el nº total de archivos empaquetados en los archivos
# comprimidos. Se usa unrar del archivo pasado como parámetro y
# teniendo en cuenta todos los volúmenes en caso de tenerlos.
# Se ordenan con sort y se borran los duplicados con -u. Por
# último se obtiene el nº de archivos empaquetados
nrar=`unrar vb -v $f | sort -u | wc -l`
# Se obtiene el nº total de archivos empaquetados en caso de haber más
# de un archivo pasado como parámetro
ntotal=$(( nrar+ntotal ))

# Se usa unrar del archivo pasado como parámetro y
# teniendo en cuenta todos los volúmenes en caso de tenerlos.
# Se ordenan con sort y se borran los duplicados con -u.
# Se recorre uno a uno los archivos y se realizan todos los comandos
# de abajo
unrar vb -v $f | sort -u | while read file
do
# Variable que obtiene el porcentage a usar por la barra de progreso
# Fórmula = 100 * (i +1) / nº total de archivos empaquetados
PCT=$(( 100*(++i)/nrar ))

# Se muestran los datos de progreso en pantalla
cat <<EOF
$PCT
#Archivos a Descomprimir: $FILES_ARRAY \n\
Nº de Archivos a Descomprimir: $NUMBER_FILES_ARRAY\n\
Nº de Archivo actual: $index \n\
Archivo Actual: $f \n\
Nº Total de Archivos: $nrar \n\
Descomprimiendo Archivo nº: $i \n\
Descomprimiendo: $file
EOF

# Sin salir del loop se descomprimen los archivos
# Se opta por descomprimir los archivos uno a uno teniendo en cuenta
# el nombre del archivo a descomprimir $f y el nombre del archivo
# empaquetado $file
unrar x -y $f $file /home/jones/prueba &>/dev/null

# Fin loop for
done
# Fin loop while
done

# Se muestra el estado finalizado del proceso
cat <<EOF
XXX
\Z1Proceso Finalizado.
\n\Z4Resumen:
\n\Z1Archivos Descomprimidos:\Z4$NUMBER_FILES_ARRAY\n
\Z4$FILES_ARRAY
\Z1Nº Total de Archivos Descomprimidos: \Z4$ntotal\n\n\n\n\n
Presionar \Z1[Enter] \Z4para finalizar
XXX
EOF
)

_________________
http://serinto.com - Linux y Drupal para todos


Última edición por blackman el Lun Abr 30, 2012 10:45 pm, editado 2 veces en total
 Perfil WWW  

Desconectado
Forista Menor
Forista Menor
Avatar de Usuario

Registrado: Sab Abr 02, 2011 11:43 pm
Mensajes: 76

Nota Publicado: Mar Abr 10, 2012 6:06 pm 
Arriba  
No comprendo totalmente su script (sobre todo no sé lo que contiene "$PCT") pero si quiere hacer una barra de progreso, se puede hacer:

Código:
echo -n "["
i=0
while [ $i -lt $index]
do
    echo -n "|";
    i=$[$i+1]
done
while [ $i -lt $nrar ]
do
    echo -n " ";
    i=$[$i+1]
done
echo -ne "]\r"


Este representa la proporción de $index a $nrar - se puede cambiarlo para su meta exacta.

Espero que ayude a usted :)

_________________
No soy hispanohablante - si he cometido un error con mi español, dime por favor :) me gustaría mejorarlo

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 05, 2011 12:37 am
Mensajes: 17

Nota Publicado: Mar Abr 10, 2012 9:47 pm 
Arriba  
Snark1994 escribió:
No comprendo totalmente su script (sobre todo no sé lo que contiene "$PCT") pero si quiere hacer una barra de progreso, se puede hacer:

Código:
echo -n "["
i=0
while [ $i -lt $index]
do
    echo -n "|";
    i=$[$i+1]
done
while [ $i -lt $nrar ]
do
    echo -n " ";
    i=$[$i+1]
done
echo -ne "]\r"


Este representa la proporción de $index a $nrar - se puede cambiarlo para su meta exacta.

Espero que ayude a usted :)


Hola
Gracias por responder
No me preocupa ni $nrar ni $index

Lo que quiero es colorear la salida del texto de información en zenity.
Subo un par de pantallazos para que veas lo que quiero.
Quiero en Zenity hacer algo parecido a lo que se puede hacer con Dialog. Es decir, colorear el texto.


Adjuntos:
Comentario: Salida Dialog y Zenity
imagenes.rar [53.82 KiB]
31 veces

_________________
http://serinto.com - Linux y Drupal para todos
 Perfil WWW  

Desconectado
Forista Menor
Forista Menor
Avatar de Usuario

Registrado: Sab Abr 02, 2011 11:43 pm
Mensajes: 76

Nota Publicado: Jue Abr 12, 2012 2:19 pm 
Arriba  
Ahhhh. Lo siento, te malinterpreté totalmente. Y no vi "zenity" en su script.

El único lugar donde se menciona el color en Zenity (que he encontrado) es aquí http://doc.ubuntu-fr.org/zenity#coloration_du_texte y ¡es en francés!

Pero lo que quiere, pienso, es:

Código:
cat <<EOF
$PCT
#<span color="red">Archivos a Descomprimir:</span><span color="lightblue"> $FILES_ARRAY</span> \n\
<span color="red">Nº de Archivos a Descomprimir:</span><span color="lightblue"> $NUMBER_FILES_ARRAY</span>\n\

...

<span color="red">Descomprimiendo:</span><span color="lightblue"> $file</span>
EOF


(También, note que es más facil leer su código si utilice (CODE) y (/CODE) rodeandolo. Pero utilice corchetes, no paréntesis)

_________________
No soy hispanohablante - si he cometido un error con mi español, dime por favor :) me gustaría mejorarlo

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Mié Oct 05, 2011 12:37 am
Mensajes: 17

Nota Publicado: Jue Abr 12, 2012 10:27 pm 
Arriba  
Hola
La web que me indicas ya la conocía y parecía ser la solución pero no me funciona.
Mi versión de zenity es: zenity --version =3.2.0

El resultado es que #<span color="red">Archivos a Descomprimir:</span><span color="lightblue"> $FILES_ARRAY</span> \n\ lo trata como texto sin tener en cuenta las etiquetas.

No se me ocurre ninguna otra solución.

_________________
http://serinto.com - Linux y Drupal para todos

 Perfil WWW  

Desconectado
Forista Menor
Forista Menor
Avatar de Usuario

Registrado: Sab Abr 02, 2011 11:43 pm
Mensajes: 76

Nota Publicado: Vie Abr 13, 2012 2:43 am 
Arriba  
Si ejecuta en el orden (¿es una palabra buena?)

Código:
zenity --info --text "<span color=\"red\">red</span> - Normal"


¿que pasa?

Tengo una caja de diálogo con texto colorado. Si funciona correctamente, quizas es el "cat << EOF .... EOF" que se debe culpar... Ahora salgo, pero más tarde experimenté

Editado: Más tarde: Hm. ¿Esta seguro que su código es correcto? Para mi, no corre. Sin embargo, lo siguente funciona para mi:

Código:
(for i in $(seq 0 10 100); do
    echo $i
    echo "<span color=\"red\">Rojo</span>"
done) | zenity --progress


pero tengo el mismo problema como tu - dice literalmente '<span color="red">Rojo</span>'. Lo siento, pienso que no es posible con zenity.

_________________
No soy hispanohablante - si he cometido un error con mi español, dime por favor :) me gustaría mejorarlo

 Perfil  
Mostrar mensajes previos:  Ordenar por  
 [ 6 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


 Temas relacionados   Autor   Respuestas   Vistas   Último mensaje 
Ayuda con script en bash [Solucionado]

en Programación

ramonovski

5

1197

Jue Feb 16, 2012 7:35 am

ramonovski Ver último mensaje

colorear texto en Xdialog bash script

en Programación

blackman

7

1441

Mié May 02, 2012 3:28 pm

niky45 Ver último mensaje

Extraer un bloque de texto en BASH [SOLUCIONADO]

en Programación

victorhck

10

5767

Vie Dic 09, 2011 12:10 pm

niky45 Ver último mensaje

Script para buscar un valor en un texto (SOLUCIONADO)

en Programación

dariovila

7

1590

Sab Oct 09, 2010 3:13 pm

mcun Ver último mensaje

Ayuda con script en Bash

en Programación

muse

4

1118

Sab Abr 18, 2015 7:34 pm

cargoan Ver último mensaje



¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC + 1 hora [ DST ]
Traducción al español por Huan Manwë
phpBB SEO