Homepage Wiki Forum Buy

Shell Skript

Aus GNUBLIN

Inhaltsverzeichnis

Bash Scripte

Mithilfe von Shell Scripten ist es dem Benutzer möglich komplexe Ablaufvorgänge für die Linux Shell zu programmieren.

Im folgendem sieht man ein kleines Hallo Welt Beispiel als bash Script:

hello.sh

#!/bin/bash          
STR="Hello World!"
echo $STR

Der Aufruf geht wie folgt:

sh hello.sh


Da das Shell Scripting ein äußerst Informationsreiches Thema ist, verweisen wir für weitere Informationen auf folgende Links:

http://www.linux-services.org/shell/
http://de.wikibooks.org/wiki/Linux-Kompendium:_Shellprogrammierung
http://www.chemie.fu-berlin.de/chemnet/general/topics/scripts_sh.html


Anwedungs Beispiele

LED BLINK

Im folgendem Beispiel wird die rote LED auf dem Board zum blinken gebracht.

Einfach in das Verzeichnis des Scripts wechseln und starten:

Debian

cd /root/examples/misc/gpio/
./blink.sh

ELDK

cd /home/root/
./blink.sh

Will man einen anderen Pin als 'blink Pin' haben, so muss man im Script die Zeile

GPIO=3

abändern (nach außen geführte GPIO's =>GPIO11, GPIO14, GPIO15)

#!/bin/sh

# Blink the onboard LED

GPIO=3

cleanup() { # Release the GPIO port
  echo $GPIO > /sys/class/gpio/unexport
  exit
}

# Open the GPIO port
#
echo $GPIO > /sys/class/gpio/export 
echo "high" > /sys/class/gpio/gpio$GPIO/direction 

trap cleanup 2 # call cleanup on Ctrl-C

# Blink forever
while [ "1" = "1" ]; do
  echo 1 > /sys/class/gpio/gpio$GPIO/value
  sleep 1
  echo 0 > /sys/class/gpio/gpio$GPIO/value
  sleep 1
done

cleanup # call the cleanup routine


TASTER ABFRAGEN

Im folgendem Beispiel wird der Zustand des GPIO_14 Pins abgefragt.

Einfach in das Verzeichnis des Scriptes wechseln und dann starten:

ELDK

cd /root/examples/misc/gpio/
./taster.sh

ELDK

cd /home/root/
./taster.sh
#!/bin/bash

# ask for pin state


GPIO=14

cleanup() { # Release the GPIO port
  echo $GPIO > /sys/class/gpio/unexport
  exit
}

# Open the GPIO port
#
echo $GPIO > /sys/class/gpio/export 
echo "in" > /sys/class/gpio/gpio$GPIO/direction 

trap cleanup 2 # call cleanup on Ctrl-C


#ask for gpio state

state=$(cat /sys/class/gpio/gpio$GPIO/value)

if [ "$state" = "1" ]
then
    echo "Taster auf HIGH"
else
    echo "Taster auf LOW"
fi

cleanup


In anderen Sprachen