Ich arbeite an einer audiovisuellen Kunstinstallation mit einem Raspberry Pi mit Raspbian Jessie. Das Audio oder Video wird nach dem Login über ein Bash-Skript gestartet. Dieses Skript läuft alleine gut.Integer wird als Variable interpretiert
Mein Problem war mit dem Versuch zu planen, die Schleife nur zu bestimmten Zeiten des Tages mit einer if-Anweisung ausgeführt werden. Dies wurde am Anfang der Schleife platziert, um die Zeit zu überprüfen, bevor eine neue Datei gestartet wird. am Anfang des Skripts
HOUR=$(date +"%H")
echo "The hour is $HOUR"
if [ $HOUR -gt 22 || $HOUR-lt 8 ]
then
sleep 60
continue
fi
Ich habe HOUR
als eine ganze Zahl mit declare -i HOUR
erklärt.
Das Skript gibt diesen Fehler aus und fährt dann fort.
./start_audio.sh: line 49: 13: command not found
Ich glaube, dass der Variable richtig eingestellt ist, weil $HOUR
[13] in dem Fehler angezeigt wird. Warum wird also $hour
als Befehl interpretiert, wenn es als Integer deklariert wurde?
Erprobte Änderungen wie Hinzufügen von Anführungszeichen oder Entfernen von Leerzeichen, wie Antworten auf andere Fragen vorgeschlagen haben.
können Sie das gesamte Skript posten? – Mox
[Shellcheck] (http://www.shellcheck.net) erkennt automatisch viele dieser Probleme. –