Cómo creé EasyShutdownScript

A petición de los chicos de DesdeLinux, me dispongo a explicar cómo funcionan las entrañas de EasyShutdownScript, el script de apagado programado sobre el que anteayer publicamos una entrada.

Pues bien, al descargar el archivo y descomprimirlo, podréis abrir con vuestro editor de texto sencillo favorito (gedit, kate, nano…), el mío es leafpad, el archivo llamado “ess”.

Dentro tenéis el texto que hace que el script funcione y los mensajes que se despliegan con Xdialog. Vamos a explicarlo paso por paso:

#!/bin/bash
#EasyShutdownScript por Adrián Hernández Pons se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 Unported.
V1=`Xdialog –title “EasyShutdownScript v1.0 – HSoft2012” –inputbox “Apagar el equipo en…

(ejemplo: ”9” para minutos,
”15:30” para una hora concreta.
No introducir comillas.)
” 0 0 2>&1 1>/tmp/ess`
exec sudo shutdown -h $V1 & Xdialog –title “EasyShutdownScript v1.0 – HSoft2012″ \
–yesno ”
Parámetro elegido: $V1
El equipo se apagará según lo indicado.

Si desea cancelar la operación pulse ”Sí”.
Al pulsar ”No” la operación seguirá su curso.

(Es recomendable que no cierre este diálogo si
no está totalmente seguro de que no querrá
cancelar la operación más adelante.
También recuerde que si no ha ejecutado este
script como root no tendrá ningún efecto.)

¿Desea cancelar la operación ahora?
” 0 0

cancelar=$?

if [ $cancelar != 1 ]; then
exec sudo killall shutdown
fi

Primera línea, /bin/bash, el shell que ejecutará el script.
Segunda línea, una almohadilla (#) para comentar la línea con la licencia del script. La almohadilla hace que el shell ignore la línea.
Después, la línea de V1 indica la creación de un objeto “ventana de diálogo” con Xdialog, dándole un título con el parametro –title y haciendo que aparezca un cuadro de introducción de texto después de las instrucciones, con el parámetro –inputbox, y la creación de una especie de registro en /tmp/ess. Los valores 0 0 son para que el ancho y largo de la ventana de diálogo se autoajuste al tamaño del texto, aunque podrían ser unos valores definidos, como 50 50.
exec sudo shutdown -h $V1 hace que se ejecute shutdown con el parámetro introducido en V1 (para más datos, mirad la ayuda de shutdown con shutdown –help), el & es para que después ejecute otro comando y el comando que sigue es para lanzar la segunda ventana con Xdialog, del mismo modo que la primera, sólo que en esta se indica que, al pulsar sí, se mate cualquier proceso de shutdown que exista mediante killall:

if [ $cancelar != 1 ]; then
exec sudo killall shutdown
fi

Bueno, espero que hayáis aprendido algo de mi explicación. Lo he intentado hacer lo más claro posible.

La otra parte es el script de instalación, en el cual, si lo abrís, podréis ver cómo con el comando cp, copia el script a /usr/bin para que se pueda ejecutar con sólo teclear el comando ess y con echo despliega un texto.

Y no hay nada más, así de simple. Los que lo habéis probado… ¿Os gusta? ¿Funciona bien? ¿Lo recomendaríais? 😉

¡Un abrazo a todos!

Anuncios

Publicado el 22 enero, 2012 en Compartiendo y etiquetado en , , , , , , , . Guarda el enlace permanente. 1 comentario.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: