Verzweigungen werden nicth ausgeführt

Kleine Helferlein für das Image auf der Box

Moderatoren: DrStoned, PauleFoul

Antworten
Nachricht
Autor
andreasM
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 52
Registriert: Sa 03 Apr 2004, 14:05
Kontaktdaten:

Verzweigungen werden nicth ausgeführt

#1 Beitrag von andreasM » Fr 29 Sep 2006, 12:05

hallo zusammen,

ich habe ein kleines Kopier-Skript...

Code: Alles auswählen

#!/bin/sh

if ls /mnt/filme/test34
cd /hdd
 then mv * /mnt/filme
 msgbox size=32 refresh=2 timeout=30 title="Transfer zur NSLU2 abgeschlossen" popup="Transfer ist beendet"
else
msgbox size=32 refresh=2 timeout=60 title="NSLU2 ist nicht erreichbar" popup="NSLU2 konnte nicht erreicht werden."
fi
exit 0
das Problem ist, dass die else-Bedingung nicht ausgeführt wird. Ich habe die NSLU für einen Test ausgeschaltet und dann das Skript gestartet - es kam auch eine Erfolgsmeldung, obwohl die Datei dann nicht verfügbar ist.
Kann mir da jemand einen Tipp geben?
Das zweite ist, warum kann ich das Plugin im Timer nicht einfach auswählen, sondern muss es händisch eintragen? Ich hatte woanders gelesen das man die Plugins auch einfach auswählen kann.

vielen Dank schon mal im vorraus

Andreas

MOhlmann
Site Sponsor
Site Sponsor
Beiträge: 157
Registriert: Do 22 Apr 2004, 11:48
Wohnort: Saarland
Kontaktdaten:

#2 Beitrag von MOhlmann » Fr 29 Sep 2006, 13:19

#!/bin/sh

if ls /mnt/filme/test34 ;then
cd /hdd
then mv * /mnt/filme
msgbox size=32 refresh=2 timeout=30 title="Transfer zur NSLU2 abgeschlossen" popup="Transfer ist beendet"
else
msgbox size=32 refresh=2 timeout=60 title="NSLU2 ist nicht erreichbar" popup="NSLU2 konnte nicht erreicht werden."
fi
exit 0
Sollte dann gehn.

Gruß Michael
1.Box: Phillips Avia 600 Sat, Bmon1.0 Ucodes avia600vb022, ucode_0014, cam_01_02_105E, IDE-IF 80GB Wechsel-Festplatte
2.Box: Phillips Avia 600 Sat, Bmon1.0 Ucodes avia600vb022, ucode_0014, cam_01_02_105E
Image: JtG immer Aktuell
SPTS Modus: AUS
PMT Update: EIN
HW Section: AUS
AViA-Watchdog: EIN
eNX-Watchdog: AUS
In SPTS Aufnehmen: EIN
Software: DVDLabPro, ProjectX 0.90.4.00, Cuttermara 1.67

Benutzeravatar
DrStoned
Moderator
Moderator
Beiträge: 2604
Registriert: Mo 15 Sep 2003, 22:57
Wohnort: Reutlingen
Kontaktdaten:

#3 Beitrag von DrStoned » Fr 29 Sep 2006, 13:23

Deine if-Abfrage kann so nicht funktionieren. Probiere mal das hier:

Code: Alles auswählen

#!/bin/sh 

ls /mnt/filme/ # dient zum Aufwecken der Netzwerkfestplatte 
sleep 3 # Verzögerung muss angepasst werden
if [ -e /mnt/filme/test34 ]; then
   cd /hdd 
   mv * /mnt/filme 
   msgbox size=32 refresh=2 timeout=30 title="Transfer zur NSLU2 abgeschlossen" popup="Transfer ist beendet" 
else 
   msgbox size=32 refresh=2 timeout=60 title="NSLU2 ist nicht erreichbar" popup="NSLU2 konnte nicht erreicht werden." 
fi 
exit 0
Dein Skript muss die Endung *.sh haben also z.B. sicherung.sh

Es benötigt ausserdem noch eine passende *.cfg also z.B. sicherung.cfg

Code: Alles auswählen

type=3
name=HDD-Sicherung - Daten sichern
desc=Filme auf Netzwerk sichern
needfb=0
needrc=0
needvtxtpid=0
needoffsets=0
Beide Dateien nach /var/tuxbox/plugins/ kopieren. Die *.sh ausführbar machen. Dann Plugins neu laden oder Box neu starten.
Zuletzt geändert von DrStoned am Fr 29 Sep 2006, 16:26, insgesamt 1-mal geändert.
Greetz von DrStoned :lol: :lol: :lol:

1. Box: Nokia Avia 500 2x Intel SAT Bmon 1.0 mit 64 MB Onbord-RAM, 100 GB Wechsel-Festplatte, 1GB-CF-Karte, USB-Interface, blaues Display
2. Box: Nokia Avia 500 2x Intel SAT Bmon 1.0
3. Box: Nokia Avia 500 2x AMD Kabel Bmon 1.0
4. Box: Dreambox 7025+ 2 SAT-Tuner mit 250 MB Festplatte, 2 GB CF-Karte
Image: Immer aktuelles JtG-Image, mit aktuellem Snapshot
Hardware: StreamPC: ASUS-A7V-133 Athlon 900, 256MB RAM, NIC 3COM 3C905C-TX 40 GB + 160 GB + 400 GB Festplatte, DVD-Brenner: LG-4160B
Arbeits-PC: MSI-KT3 Ultra Athlon 2800XP 512MB RAM, DVD-Brenner: Toshiba SD-R5112,
DVD-Player: APEX AD703, Daewoo 5000N
Software: SFU 3.5, ProjectX, Cuttermaran, Nero 6.0.0.19, VLC 0.72

andreasM
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 52
Registriert: Sa 03 Apr 2004, 14:05
Kontaktdaten:

#4 Beitrag von andreasM » Fr 29 Sep 2006, 15:43

Hallo DrStoned & Michael,

danke für eure Antworten.

if [ -e mnt/filme/test34 ]; then

irgendwie klappt das nicht - es wird immer nur die Else - Anweisung ausgeführt.... vorher hatte zumindest das mv - Kommando immer geklappt.
hab jetzt auch schon if [ls -e /mnt/filme/test34]; then als Bedingungszeile verwendet, da das zumindest direkt auf der konsole die Datei zurückgibt, aber für das Plugin brachte das keine Änderung.

Was auch sehr störend ist : am ende des Skripts kommt immer eine Box - Pluginausgabe und als Text msgbox Message Box Version 1.52 - kann man das abstellen?

Derzeitig sieht der Code der sh-Datei so aus:

Code: Alles auswählen

#!/bin/sh
ls /mnt/filme/ >$inhalt
sleep 5
if [ls -e /mnt/filme/test34]; then
  cd /hdd
  mv * /mnt/filme
  msgbox size=32 refresh=2 timeout=30 title="Transfer zur NSLU2 abgeschlossen" popup="Transfer ist beendet" $inhalt
else
msgbox size=32 refresh=2 timeout=60 title="NSLU2 ist nicht erreichbar" popup="NSLU2 konnte nicht erreicht werden."
fi
exit 0
Wenn alles nichts hilft nehm ich die Prüfung halt wieder raus - bisher hat das Plugin ja auch ohne Prüfung funktioniert... wär halt nur schön gewesen.


schöne Grüße

Andreas

usul
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 62
Registriert: Mo 22 Nov 2004, 18:25

#5 Beitrag von usul » Fr 29 Sep 2006, 15:45

andreasM hat geschrieben:if [ -e mnt/filme/test34 ]; then
if [ -e /mnt/filme/test34 ]; then

Die Pfadangabe sollte schon stimmen. Sonst sucht er relativ zum aktuellen Verzeichnis.

cu
usul

Benutzeravatar
DrStoned
Moderator
Moderator
Beiträge: 2604
Registriert: Mo 15 Sep 2003, 22:57
Wohnort: Reutlingen
Kontaktdaten:

#6 Beitrag von DrStoned » Fr 29 Sep 2006, 16:17

Sorry den / hatte ich vergessen.
#!/bin/sh
ls /mnt/filme/ >$inhalt
sleep 5
if [ls -e /mnt/filme/test34 ]; then
cd /hdd
mv * /mnt/filme
msgbox size=32 refresh=2 timeout=30 title="Transfer zur NSLU2 abgeschlossen" popup="Transfer ist beendet" $inhalt
else
msgbox size=32 refresh=2 timeout=60 title="NSLU2 ist nicht erreichbar" popup="NSLU2 konnte nicht erreicht werden."
fi
exit 0
Mach das ls raus, dann funktionierts. Und stelle sicher, dass in Deinem Verzeichnis auf /mnt/filme/ eine Datei namens test34 existiert. Und nach test34 muss ein Leerzeichen rein.
Wieso kopierst Du nicht einfach mein Beispiel? Habs jetzt oben korrigiert.

Die Messageboxanzeige bleibt drin, geht nur weg, wenn man statt popup den Parameter msg verwendet. Warum keine Ahnung, vermutlich wird da eine Variable übergeben, die das Neutrino für Skripte kurz anzeigt.
Zuletzt geändert von DrStoned am Fr 29 Sep 2006, 16:33, insgesamt 3-mal geändert.
Greetz von DrStoned :lol: :lol: :lol:

1. Box: Nokia Avia 500 2x Intel SAT Bmon 1.0 mit 64 MB Onbord-RAM, 100 GB Wechsel-Festplatte, 1GB-CF-Karte, USB-Interface, blaues Display
2. Box: Nokia Avia 500 2x Intel SAT Bmon 1.0
3. Box: Nokia Avia 500 2x AMD Kabel Bmon 1.0
4. Box: Dreambox 7025+ 2 SAT-Tuner mit 250 MB Festplatte, 2 GB CF-Karte
Image: Immer aktuelles JtG-Image, mit aktuellem Snapshot
Hardware: StreamPC: ASUS-A7V-133 Athlon 900, 256MB RAM, NIC 3COM 3C905C-TX 40 GB + 160 GB + 400 GB Festplatte, DVD-Brenner: LG-4160B
Arbeits-PC: MSI-KT3 Ultra Athlon 2800XP 512MB RAM, DVD-Brenner: Toshiba SD-R5112,
DVD-Player: APEX AD703, Daewoo 5000N
Software: SFU 3.5, ProjectX, Cuttermaran, Nero 6.0.0.19, VLC 0.72

andreasM
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 52
Registriert: Sa 03 Apr 2004, 14:05
Kontaktdaten:

#7 Beitrag von andreasM » Fr 29 Sep 2006, 16:30

Hallo usul,

also test34 ist eine Datei. Die hab ich nur deswegen angelegt. Unter DOS kann man ja nach nul fragen. Meine Linux-Kenntnisse sind leider etwas angestaubt..


Wenn ich -e /mnt/filme/test34 auf der Kommandozeile (telnet dbox) eingebe, erhalte ich nur

Code: Alles auswählen

 -sh: -e: not found
müsste da dann nicht eine andere Rückgabe kommen?

Gibt es irgendwo eine Befehlsübersicht, was man alles ansprechen kann? Die Messagebox will ich eigendlich auch wegklicken können.


Schöne Grüße


Andreas

Benutzeravatar
DrStoned
Moderator
Moderator
Beiträge: 2604
Registriert: Mo 15 Sep 2003, 22:57
Wohnort: Reutlingen
Kontaktdaten:

#8 Beitrag von DrStoned » Fr 29 Sep 2006, 16:36

Lies mal meinen meinen oberen Post durch, das -e kann so nicht funktionieren, da es ein Parameter für if ist.

http://www.selflinux.org/selflinux/html ... erung.html
Gibt es irgendwo eine Befehlsübersicht, was man alles ansprechen kann? Die Messagebox will ich eigendlich auch wegklicken können.
Für die Messagebox findest Du alle möglichen Parameter in der readme.txt dieses Plugins.
Greetz von DrStoned :lol: :lol: :lol:

1. Box: Nokia Avia 500 2x Intel SAT Bmon 1.0 mit 64 MB Onbord-RAM, 100 GB Wechsel-Festplatte, 1GB-CF-Karte, USB-Interface, blaues Display
2. Box: Nokia Avia 500 2x Intel SAT Bmon 1.0
3. Box: Nokia Avia 500 2x AMD Kabel Bmon 1.0
4. Box: Dreambox 7025+ 2 SAT-Tuner mit 250 MB Festplatte, 2 GB CF-Karte
Image: Immer aktuelles JtG-Image, mit aktuellem Snapshot
Hardware: StreamPC: ASUS-A7V-133 Athlon 900, 256MB RAM, NIC 3COM 3C905C-TX 40 GB + 160 GB + 400 GB Festplatte, DVD-Brenner: LG-4160B
Arbeits-PC: MSI-KT3 Ultra Athlon 2800XP 512MB RAM, DVD-Brenner: Toshiba SD-R5112,
DVD-Player: APEX AD703, Daewoo 5000N
Software: SFU 3.5, ProjectX, Cuttermaran, Nero 6.0.0.19, VLC 0.72

andreasM
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 52
Registriert: Sa 03 Apr 2004, 14:05
Kontaktdaten:

#9 Beitrag von andreasM » Fr 29 Sep 2006, 17:09

DrStoned hat geschrieben:Lies mal meinen meinen oberen Post durch, das -e kann so nicht funktionieren, da es ein Parameter für if ist.

http://www.selflinux.org/selflinux/html ... erung.html


Für die Messagebox findest Du alle möglichen Parameter in der readme.txt dieses Plugins.


vielen Dank - jetzt funktioniert es perfekt! (na ja die $inhalt wird nicht ausgegeben... aber das muss nicht sein)
Der Link auf die Shellprogrammierung ist wirklich absolut klasse. Werde mich mal da einarbeiten.

so klappt es jetzt - beide Bedingungen werden ausgeführt-je nachdem was zutrifft.

Code: Alles auswählen

#!/bin/sh
ls /mnt/filme/ >$inhalt
sleep 3
if [ -e /mnt/filme/test34 ]; then
  cd /hdd
  mv * /mnt/filme
  msgbox size=32 refresh=2 timeout=30 title="Transfer zur NSLU2 abgeschlossen" popup="Transfer ist beendet" $inhalt
else
msgbox size=32 refresh=2 timeout=60 title="NSLU2 ist nicht erreichbar" popup="NSLU2 konnte nicht erreicht werden."
fi
exit 0
schöne Grüße

Andreas

usul
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 62
Registriert: Mo 22 Nov 2004, 18:25

#10 Beitrag von usul » Fr 29 Sep 2006, 17:43

andreasM hat geschrieben:(na ja die $inhalt wird nicht ausgegeben... aber das muss nicht sein)

ls /mnt/filme/ >$inhalt
Gehe mal in die Richtung (Die Art wie du $inhalt später einsetzt (als Parameter der messagebox) ist AFAIK aber falsch. Schau dafür nochmal in die Doku):

inhalt=`ls /mnt/filme/`

(Auch wirklich diese "Hochkommas" verwenden)

Zum testen auf der Shell kannst du:
inhalt=`ls /mnt/filme`; echo $inhalt

cu
usul

andreasM
Gelegenheits-Streamer
Gelegenheits-Streamer
Beiträge: 52
Registriert: Sa 03 Apr 2004, 14:05
Kontaktdaten:

#11 Beitrag von andreasM » Fr 29 Sep 2006, 18:03

Hallo usul,
Gehe mal in die Richtung (Die Art wie du $inhalt später einsetzt (als Parameter der messagebox) ist AFAIK aber falsch. Schau dafür nochmal in die Doku):

inhalt=`ls /mnt/filme/`
danke für deinen Hinweis... in der Readme zur Messagebox bin ich zwar nicht fündig geworden, dafür im Code von mem-check. Das hab ich angepasst - und es funktioniert!


:D :D :D

schöne Grüße

Andreas

Antworten