Ejecutar cadena como comando en shell linux

jueves, 12 de junio de 2008
Publicado por Ivan

La verdad es que esto surgió a raiz de que estoy configurando un pc para un local nocturno (de buena reputacion, donde sirven excelentes pizzas) cuya unica función es reproducir musica, y mostrar la visualización por pantalla. Además, está ubicado en el techo, por lo que era optimo que se manejara practicamente solo. A través de la bios habilite la Alarma RTC para que encendiera solo todos los días a las 5:30 de la tarde. Cabe decir que el pc es viejo, por lo que en pc´s más nuevos esto es más facil de configurar, incluso hay software como auto power on & shut down para windows, y otras alternativas en linux. Bueno, pude configurar el encendido automatico, y modificando el /etc/sudoers con visudo para darle permisos a mi usuario de ejecutar shutdown, pude programar el apagado automático. Luego configuré que lanzara kaffeine (reproductor de audio que me funcionó para lo que quería) al iniciar sesión, y hasta aquí todo perfecto. El tema era que el pc debía ser capaz de reproducir distinta musica dependiendo del día. Para esto, creé una carpeta llamada música, y dentro de ella distintas carpetas, por cada día de la semana. Y esta carpeta musica está compartida por samba en la red, para que puedan modificar la musica de cada día desde otro pc en la red. Y ahora viene el problema!: ¿Cómo hacer para que kaffeine reproduzca cada día la música respectiva?. Sabía que debía hacer un comando así como "kaffeine -p -f /home/usuario/Desktop/música/lunes/*". El tema era que esto funciona bien para el lunes, ¿pero y los otros días?. Entonces ahora recurrimos a la función date, que con los modificadores "date +%A" entrega el nombre del día actual. Excelente!!, ahora solo faltaba unir ambas cosas. Y el truco consiste en interpretar esta salida como parte del comando. Y para esto se usa $(), y dentro del paréntesis va lo que devuelve la función date. En resumen, el comando queda:


kaffeine -p -f /home/usuario/Desktop/musica/$(date +%A)/*

Y listo!!!, dependiendo del día de la semana, va a abrir todo el contenido de la carpeta con kaffeine. Y con esta solución completa, el pc se enciende solo a las 5:30 en pantalla completa mostrando las visualizaciones de la musica del día respectivo, y luego se apaga solo a las 4 de la madrugada. Excelente!

0 comentarios: