Hallo.
Können wir uns mal bitte um mein allgem. Verständnis Kümmern?
Es geht um den Thread "Compilerfehler", ich möchte dies hier aber nicht dor einbrigen, denn es bläht dort nur auf.
Ich habe das Script "Überwachungskamera" mal auf wenige Zeilen reduziert und hätte gerne von Euch einige Fragen dazu beantwortet.
#!/bin/bash
VIDEODIR="/home/pi/security-camera"
VIDEOFILELENGTH=600000 # in miliseconds (default 10 min)
VIDEOBITRATE=6000000
VIDEOFPS=4
VIDEORASPIVIDPARAM=""
set -x
DATE=$(date +"%Y-%m-%d-%H-%M")
VIDEOFILE=$VIDEODIR"/video/"$DATE.h264
sleep 1
screen -dmS VideoRecord raspivid -b $VIDEOBITRATE -o $VIDEOFILE -t $(expr $VIDEOFILELENGTH + 600) -fps $VIDEOFPS -n $VIDEORASPIVIDPARAM
Alles anzeigen
Das ist ein bash-Script, wie hier festgestellt wurde, nach Zeile 1
Dann kommen ein paar Zeilen die mit groß geschriebenen Bezeichnungen anfangen = Variable, richtig?
set -x ist ein debug-Befehl und printet Kommandos und Argumente - sofern ausgeführt.
DATE, eine Variable die mit dem (amer.) Datum gefüllt wird, bis hierhin sollte eigentlich meinem Verständnis nach alles fehlerfrei ausgeführt werdren, ja?
Hm, ich versuchs mal: die Variable VIDEOFILE sollte gefüllt werden mit VIDEODIR, also "/home/pi/security-camera" & /video/ & <Datum>.h264, also
/home/pi/security-camera/video/2014_09._14_58_24.h246. (jetzt mal nicht an den Datumstrennern stören, ich weiß nicht wie die dann wirklich aussehen).
dann kommt eine kurze Pause (1 sek?)
mit screen kann ich noch nicht wirklich was anfangen, aber hier soll ein Video geschrieben werden mit den Parametern, wobei ich alles was mit "-" anfängt nicht wirklich interpretieren kann.
Soweit sollte es so sein, ja?
nun kleine Abschweifung: das Script muss gestartet werden. Die simpelste Möglichlichkeit
geht nicht, das leuchtet mir ein, ist klar, die Ausführungsberechtigung fehlt. Also, wie Jan vorschlägt, ein sudo davor:
pi@raspberrypi ~ $ sudo /home/pi/security-camera/record_test.sh
sudo: /home/pi/security-camera/record_test.sh: command not found
pi@raspberrypi ~ $
command not found??? Sorry, verstehe ich nicht, das Script ist doch da. Nun soll es ja auch die Möglichkeit geben mit sh (hm, wird von euch wohl abgelehnt, da 1. Zeile ...bash) oder mit bash (doppelt gemoppelt??) zu starten:
pi@raspberrypi ~ $ sh /home/pi/security-camera/record_test.sh
+ date +%Y-%m-%d-%H-%M
+ DATE=2014-09-10-15-10
/home/pi/security-camera/record_test.sh: 8: /home/pi/security-camera/record_test.sh: DATE=2014-09-10-15-10: not found
+ VIDEOFILE=/home/pi/security-camera/video/.h264
/home/pi/security-camera/record_test.sh: 9: /home/pi/security-camera/record_test.sh: VIDEOFILE=/home/pi/security-camera/video/.h264: not found
+ sleep 1
/home/pi/security-camera/record_test.sh: 10: /home/pi/security-camera/record_test.sh: sleep: not found
+ expr 600000 + 600
+ screen -dmS VideoRecord raspivid -b 6000000 -o -t 600600 -fps 4 -n
/home/pi/security-camera/record_test.sh: 11: /home/pi/security-camera/record_test.sh: screen: not found
pi@raspberrypi ~ $
Alles anzeigen
Na ja, Datum (DATE) ist ok, VIDEOFILE, da fehlt m.E. DATE vor .246.
sleep not found??? Hm. screen auch nicht...
pi@raspberrypi ~ $ bash /home/pi/security-camera/record_test.sh
++ date +%Y-%m-%d-%H-%M
+ $'\302\240\302\240\302\240\302\240DATE=2014-09-10-15-13'
/home/pi/security-camera/record_test.sh: Zeile 8: $'\302\240\302\240\302\240\302\240DATE=2014-09-10-15-13': Kommando nicht gefunden.
+ $'\302\240\302\240\302\240\302\240VIDEOFILE=/home/pi/security-camera/video/.h264'
/home/pi/security-camera/record_test.sh: Zeile 9: VIDEOFILE=/home/pi/security-camera/video/.h264: Datei oder Verzeichnis nicht gefunden
+ $'\302\240\302\240\302\240\302\240sleep' 1
/home/pi/security-camera/record_test.sh: Zeile 10: $'\302\240\302\240\302\240\302\240sleep': Kommando nicht gefunden.
++ expr 600000 + 600
+ $'\302\240\302\240\302\240\302\240screen' -dmS VideoRecord raspivid -b 6000000 -o -t 600600 -fps 4 -n
/home/pi/security-camera/record_test.sh: Zeile 11: $'\302\240\302\240\302\240\302\240screen': Kommando nicht gefunden.
pi@raspberrypi ~ $
Alles anzeigen
Datum gefunden, Rest, hm...
Jetzt wäre eine Erklärung hilfreich, was ist der Unterschied zwischen sudo- und bash-Start und warum werden offensichtlich doch vorhandene Kommandos nicht gefunden? Warum wird in der VIDEO-Zeile/Variable das Datum nicht ergänzt? Jamand hat mal geschrieben, dass der "." evtl. falsch sei, aber das Originalfile - und dieses hier ist ja ein Teil davon - läuft doch bei vielen anderen?
Jetzt haben wir 2 Baustellen....