ich versuche mich gerade an meinen 1. bash script.
Das Script soll einen Eingang am BBB überwachen und das System runterfahren / abschalten wenn der Eingang auf Low geht.
Code: Alles auswählen
#!/bin/bash
# BBB Pin 48 als Eingang definieren
echo 48 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio48/direction
# Endlos Schleife
while true
do
# Den Zustand des Eingangs lesen
pin=$(cat /sys/class/gpio/gpio48/value)
# Wenn der Eingang von 1 auf 0 gewechselt hat
if [ $pin -eq 0 ]
then echo "den BBB runterfahren"
#shutdown -h now
fi
# 500ms schlafen, wegen µC Auslastung
sleep 0.5
done
Auf den Portpin 48 kann ich grundsätzlich zugreifen und ihn auch abfragen. Das habe ich mit "sudo echo 48 > export" getestet. Mit "cat" kann ich dann den Portpin auslesen und sehe auch die Änderung mit 0 und 1, je nachdem ob ich den Port auf GND ziehe oder offen lasse (interne PullUps).
Wenn ich "sudo sh shtdwn.sh " aufrufe bekomme ich die folgenden Fehler:
debian@beaglebone:~$ sudo sh shtdwn.sh
: not found2: shtdwn.sh:
: Directory nonexistent: cannot create /sys/class/gpio/export
: Directory nonexistent: cannot create /sys/class/gpio/gpio48/direction
: not found6: shtdwn.sh:
shtdwn.sh: 22: shtdwn.sh: Syntax error: end of file unexpected (expecting "fi")
Was hat das zu bedeuten? Den Pfad "/sys/class/gpio" mit "export" gibt es. Das "if ... fi" scheint mir auch ok zu sein. Was mache ich noch falsch?
Gruß
Florian