[h]Transformar tu consola en un despertador gracias a una simple linea de ordenes con sleep [/h]
http://i.giphy.com/6GY01XQBkf3lS.gif
Con un poco de imaginación podemos hacer muchísimas cosas con nuestra consola bash sin tener ni idea de programación…
Para hacer un despertador no necesitamos nada mas que sleep y una canción bonita (o un ruido insoportable) para reproducirla en nuestro lector multimedia.
[h]El comando sleep[/h]
El comando sleep es para hacer pausas.
Nuestra consola “duerme” durante un tiempo que definimos
Es un comando ultra simple a emplear, sin opciones (otras que help y version) …
[code]sleep --help
Modo de empleo: sleep NÚMERO[SUFIJO]…
o bien: sleep OPCIÓN
Hace una pausa de NÚMERO segundos. El SUFIJO puede ser ‘s’ para segundos
(predeterminado), `m’ para minutos, ‘h’ para horas o ‘d’ para días.
Al contrario de la mayoría de las implementaciones que exigen que
NÚMERO sea un entero, aquí NÚMERO puede ser un número de coma flotante
arbitrario. Dados dos o más argumentos, hace una pausa por la cantidad
de tiempo especificada por la suma de sus valores.
--help muestra esta ayuda y finaliza
--version informa de la versión y finaliza
ayuda en línea sobre GNU coreutils: http://www.gnu.org/software/coreutils/
Informe de errores de traducción en sleep a http://translationproject.org/team/es.html
Full documentation at: http://www.gnu.org/software/coreutils/sleep
or available locally via: info ‘(coreutils) sleep invocation’
[/code]
Entonces para hacer una pausa de 5 segundos es así:
sleep 5
Si ejecutas este código en consola veras que durante 5 segundos no puedes hacer nada en consola y luego vuelves a poder entrar ordenes.
Por defecto se usan segundos.
Si quieres usar otra unidad de tiempo debes añadir el sufijo correspondiente :
[list=*]
*]m para minutos
Una pausa de 5 minutos se hace con
sleep 5m
]h para horas y d para días /]
[/list]
Puedes usar varios argumentos…
Por ejemplo; una pausa de 6 horas y 15 minutos se puede hacer así
sleep 6h 15m
…en lugar de
sleep 375m
Nada más que añadir sobre el comando sleep, no es nada complicado.
Me vais a preguntar
…¿Pero a que coño sirve hacer pausas en consola?
Cuando hacemos un script nos damos cuenta que es a veces necesario para encadenar ordenes porque necesitan una ligera pausa entre ellas.
Siempre en el contexto del “scritping” es también a menudo necesario para dejar el tiempo al usuario de leer unos mensajes.
Por ejemplo :
echo "Ejecutando wash en búsqueda de objetivos" && sleep 3 && wash -i wlan0mon
El mensaje “Ejecutando wash en búsqueda de objetivos” se queda así 3 segundos en consola antes de que desaparezca porque se ejecuta wash.
Estos son casi choradas en comparación con la función de sleep que es programar la ejecución de tareas.
[h]Despertador bash[/h]
Es solo un pequeño truco sin pretensiones visto aquí :
How to practically use your Linux terminal (four examples) @ howtoforge
¿Que es un despertador?
En esencia es un programa que ejecuta una tarea ( leer un archivo musical ) en un momento definido.
sleep <tiempo_para_dormir> && <lector_multimedia> ruta_fichero_música
Son las 11 de la noche ahora…
Por ejemplo, si quiero madrugar mañana - algo como las dos de la tarde -, pongo mi alarma dentro de 15 horas.
sleep 15h && cvlc '/home/kcdtv/Música/Radioactive cake/03 - Fagin'\''s Reject - Occult Boogaloo (Radioactive.Cake Remix).flac'
[list=]
]sleep 15h
Nuestra consola se queda inactiva durante 15 horas/]
]&&
permite ejecutar otra orden después que se haya ejecutado la primera (sleep 15 horas, es decir no hacer nada durante 15 horas) /]
]cvlc <ruta_archivo>
Uso* cvlc** en lugar de vlc para no abrir la interfaz gráfica de vlc/]
[/list]
Como siempre, un pequeño vinculo hacía la pagina de referencia, la man page :
[list=*]
]sleep @ Linux man page/]
[/list]