Capturador De Pantalla Con Scrot


Subject: Capturador De Pantalla Con Scrot
Veréis, estoy tratando de hacer un script con Zenity para que me capture la pantalla y no se porque no me funciona. He investigado en varios sitios y no encuentro una solución y espero que aquí me podáis ayudar...

Os paso el código:
#!/bin/sh

MENU=$(zenity --title="Capturador: Menú principal" --window-icon=/usr/share/pixmaps/capturador/icono.png --list "Tomar una instantánea" "Captura con temporizador" --column="")

case "$MENU" in
"Tomar una instantánea") if [ -f ~/Captura.png ]; then
zenity --warning --title="Capturador: Archivo encontrado" \
--text="Se ha encontrado una captura en su carpeta personal, renombre el archivo." && scrot -d 3 ~/Captura.png && eog ~/Captura.png
else
scrot -d 3 ~/Captura.png && eog ~/Captura.png
fi;;

"Captura con temporizador")
TEMPORIZADOR=$(zenity --entry \
--title="Capturador: Captura con temporizador" \
--text="¿Cuántos segundos?")

scrot -d $TEMPORIZADOR ~/Captura.png && eog ~/Captura.png;;

Si lo intento ejecutar en una terminal con: ./Capturador.sh obtengo esto: ./Capturador.sh: 13: ./Capturador.sh: Syntax error: ")" unexpected (expecting ";;")

¡Gracias de antemano!

Profile PM  
Subject: Re: Capturador De Pantalla Con Scrot
Hola LalaLines

En principio el fallo del script es que le falta el cierre del bloque "case", mediante la palabra clave "esac" al final. Segundo, merece la pena organizar mejor el código mediante indentaciones y lineas en blanco, etc., para su mejor lectura y comprensión. Y tercero, puedes ahorrar la comprobación de si existe previamente un fichero con el mismo nombre, ya que aunque avisas de su existencia, el programa scrot lo sobreescribe igualmente.

Esto último se puede solucionar añadiendo una cadena diferente al nombre del fichero resultante, en este caso he escogido una marca de tiempo mediante date +%s, que da los segundos desde 1/1/1970. Este es el resultado de las correcciones al script:

#!/bin/sh

MENU=$(zenity --title="Capturador: Menú principal" \
--window-icon=/usr/share/pixmaps/capturador/icono.png \
--list "Tomar una instantánea" "Captura con temporizador" --column="")

DATE=$(date +%s)

case "$MENU" in

"Tomar una instantánea")

scrot -d 3 ~/Captura$DATE.png && eog ~/Captura$DATE.png
;;

"Captura con temporizador")

TEMPORIZADOR=$(zenity --entry \
--title="Capturador: Captura con temporizador" \
--text="¿Cuántos segundos?")

scrot -d $TEMPORIZADOR ~/Captura$DATE.png && eog ~/Captura$DATE.png
;;
esac


Espero que te sirva así, saludos

P.D. Hay varios libros muy interesantes sobre bash (y muchas otras cosas) aquí: http://it-ebooks.info/search/?q=bash&type=title

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1112s (PHP: -31% SQL: 131%)
SQL queries: 23 - Debug Off - GZIP Enabled