Hi,
ich bin eigentlich mehr der Java, C# usw. Entwickler und bin jetzt jedoch zwangsläufig auf eine kleine Skript Anwendung für mein Raspberry angewiesen. Nun hab ich schon einige Beiträge und sonstiges zu diesen Thema durchgelesen aber irgend wie finde ich trotzdem nicht meinen Fehler nicht und hoffe jemand kann mir sagen wo ich mich zu blöd angestellt habe;)
Ich möchte dass das Skript eine Datei von einen FTP Server runter lädt → Das funktioniert ohne Probleme
Anschließend soll die Datei zeilenweise in ein Array eingelesen werden → Funktioniert meines Erachtens auch
Danach soll die Datei gelöscht werden → Funktioniert
Anschließend soll das Array in einer Schleiße abgearbeitet werden und zwar wird ein Schlagwort gesucht (stop, bild, video) und anschließend darauf reagiert. S.h.
Wenn Array[0] → Bild dann mache ein Bild und speichere es, erhöhe den Index
Array[1] → Video Mache ein Video und hole dir die nötigen Parameter aus den nächsten zwei indexen, erhöhe index um 3
Array[4] → stop beende die Anwendung
Nun läuft das Ding ohne Fehler durch... jedoch wird sofort in den Abzweig stop gesprungen und das Programm beendet obwohl der Befehl stop erst an letzter stelle steht das heißt alles andere wird ignoriert bzw. ich habe fast das Gefühl das kein richtiger Vergleich stattfindet.
Ich hoffe jemand kann meine Blindheit beenden und mir sagen was ich falsch gemacht habe. Entschuldigung schon mal für den großen Quellcode aber ich möchte lieber auf Nummer sicher gehen und poste deshalb den gesamten Quellcode und nicht nur den teil wo meiner Meinung nach das Problem liegt.
#!/bin/bash
#Variablendefinition
#Zaehlvariable
VarI=1
VarJ=0
#Hostname ermitteln
THISHOST=$(hostname)
#Datum ermitteln
THISDATE=$(date +"%d%m%y")
#Dateiname fuer Arbeitsablauf
THISARBEITSPLANDATEINAME=$THISHOST$THISDATE".txt"
#Arbeitsplan fuer den Tag holen
sudo bash DateiVonFTPMitArgDateiName.sh $THISARBEITSPLANDATEINAME
#Arbeitsplan einscannen
while read value
do
array[VarI]=$value
((VarI = VarI+1))
done < $THISARBEITSPLANDATEINAME
echo "Wir sind durch"
#Arbeitsplan-Datei loeschen
#sudo rm -f $THISARBEITSPLANDATEINAME
#Schleife zur systematischen abarbeitung der aufgaben
while true
do
echo "Start der schleife"
# Ende der Tagesaufgaben
if [ "${array[VarJ]}"="stop" ]
echo "${array[VarJ]}"
echo "Ich beende"
then
exit 0
#sudo shutdown -h now
fi
#Testbild machen und auf FTP server laden
if [ "${array[VarJ]}"="bild" ]
then
echo "Ich mache ein bild"
raspistill -o /media/pi/A0F8F9F6F8F9CB14/$THISHOST$THISDATE+"Bild".jpg -n
sudo bash DateiZuFTPMitArgDateiName.sh $THISHOST$THISDATE+"Bild".jpg
sudo rm -f /media/pi/A0F8F9F6F8F9CB14/$THISHOST$THISDATE+"Bild".jpg
((VarJ = VarJ+1))
fi
#Video starten und auf usb stick speichern
if [ "${array[VarJ]}"="video" ]
then
echo "Ich mache ein Video"
while [ $(date +%H%M) -ne ${array[VarJ+1]} ]; do
sleep 5
done
raspivid -o /media/pi/A0F8F9F6F8F9CB14/$THISHOST$THISDATE${array[VarJ+1]}.h264 -t ${array[VarJ+2]} -w 1920 -h 1080 -fps 30
((VarJ = VarJ+3))
fi
done
Alles anzeigen