Bash Befehle einzeln funktionieren; Als Skript nicht

xC0re

Cadet 4th Year
Registriert
März 2010
Beiträge
98
Hallo,

ich habe ein Script geschrieben, dass von einem lokalen Server eine Datei anfragen und runterladen soll.
Das ganze läuft auf einem Kobo Mini (E-Book reader mit Linux unterbau)

Wenn ich die Befehle der Reihe nach manuell eingebe und ausführe funktioniert alles wunderbar.
Wenn ich sie allerdings als Script gesammelt ausführen will, passiert nichts.
(Bzw. es kommen Fehlermeldung die an dem Nichtausführen des vorherigen Befehls liegen)

Das Script rufe ich mit /bin/sh /mnt/onboard/update.sh auf. Vorher habe ich es mit chmod ausführbar gemacht.

Code:
#!/bin/sh
#holt aktuellen Akkustand und bastelt daraus die Abfrage URL
battery=`cat /sys/devices/platform/pmic_battery.1/power_supply/mc13892_bat/capacity`
url="http://192.168.178.26/?bat="
url_all=$url$battery
#ruft die entsprechende URL auf, läd aber nichts herunter (triggert serverprozesse)
wget -q -s $url_all
#wartet 5s bis der Server fertig ist
sleep 5
#löscht alte kobo.raw.gz Datei und läd neue runter
rm /mnt/onboard/kobo.raw.gz 
wget -q http://192.168.178.26/kobo.raw.gz -P /mnt/onboard/
#zeigt kobo.raw.gz auf Bildschirm an
zcat /mnt/onboard/kobo.raw.gz | /usr/local/Kobo/pickel showpic
#löscht alte update.sh (sich selbst) und läd neue Version runter.
rm /mnt/onboard/update.sh
wget http://192.168.178.26/update.sh -P /mnt/onboard/

Hat irgendwer eine Idee warum es nicht funktionieren könnte?

Vielen Dank :)
 
Zuletzt bearbeitet: (Typo)
füühr das skript mal mit

bash -x SKRIPT

aus dann siehst du wo es hakt
 
Danke! Der Tipp hat mich auf eine (etwas merkwürdige) Lösung gebracht.
Er hat anscheinend beim URL zusammenbauen irgendein Fehler gemacht. Der Akkustand wurde mir da irgendwo angezeigt, nur nicht nach dem '='
Und aus den "sleep" ist ein "leep" geworden....

Ich habe das Script dann nochmal abgetippt (nicht kopiert) und unter einem anderen Namen gespeichert. Erstaunlicherweise lief es dann sauber ab. Auch als ichs danach kopiert habe gings. Aus irgendeinem Grund, scheint ihm wohl der Name update.sh nicht gepasst zu haben.
Vermutlich weil es ein gegenüber dem Desktop Linux eine relativ stark veränderte Version ist...


Dieses Sleep Problem habe ich trotzdem noch in anderen Scripten.
Wenn ich diese mit bash -x SCRIPT aufrufe kommt immer soetwas wie:
Code:
+ sleep 10 
'leep: invalid number '

Hat da auch noch jemand einen Tipp für?
 
Zuletzt bearbeitet: (ergänzung)
Zurück
Oben