El objetivo de este script en Shell es controlar uno de los LED's de usuario integrados en la BeagleBone Black por medio de los registros del sistema.
En la primera línea de nuestro script se añade una línea con la dirección de los binarios de bash, al momento en que se lea esta línea, sabrá como debe ejecutar el script sin que lo indiquemos en la terminal. De igual forma, se define la dirección del LED 3 dónde se encuentran los registros a modificar.
Al ser bash el lenguaje con el que se interactúa en la terminal, no se necesitan librerías para las entradas y salidas de nuestro script.
#!/bin/bash
LED3_PATH=/sys/class/leds/beaglebone:green:usr3
Se desarrolla la función que deshabilitará el trigger del LED, utilizando el comando echo que nos permite modificar o agregar valores a los archivos
function removeTrigger
{
echo "none" >> "$LED3_PATH/trigger"
}
En la parte principal de nuestro código, se inicia un ciclo if que evaluará los argumentos on, off y blink; al igual que en la función removeTrigger, el estado del LED se controlará modificando el registro brightness con el comando echo, para el parpadeo del LED se usará el comando sleep que definirá el tiempo de inicio y apagado en segundos.
echo "The LED3 user is starting"
if [ "$1" == "on" ]; then
echo "LED on"
removeTrigger
echo "1" >> "$LED3_PATH/brightness"
elif [ "$1" == "off" ]; then
echo "LED off"
removeTrigger
echo "0" >> "$LED3_PATH/brightness"
elif [ "$1" == "blink" ]; then
"LED blinking"
removeTrigger
echo "1" >> "$LED3_PATH/brightness"
sleep 0.5
echo "0" >> "$LED3_PATH/brightness"
sleep 0.5
fi
echo "Done"
Se cambian los permisos de nuestro script.
sudo chmod u+x blink_LED3.sh
Y se ejecuta con cualquiera de los argumentos mencionados anteriormente.
./blink_LED3.sh blink