[ERLEDIGT] Sprungmarken im Linux-Script ähnlich ms-dos .bat?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
layer8
Beiträge: 74
Registriert: 12.05.2012 19:46:18
Wohnort: 58285

[ERLEDIGT] Sprungmarken im Linux-Script ähnlich ms-dos .bat?

Beitrag von layer8 » 09.07.2012 11:45:22

Moinsen, habe jetzt schon etwas google bemüht bin aber nicht wirklich weiter gekommen.
auf meiner Windows-Schleuder sieht das Skript so aus:

Code: Alles auswählen

@echo off
:start
wget http://10.0.0.112/webcam/actual.jpg
set mydate=%date:~-4%%date:~-7,2%%date:~-10,2%
set mytime=%time:~-11,2%%time:~-8,2%%time:~-5,2%
ren actual.jpg actual_%mydate%_%mytime%.jpg
move actual_%mydate%_%mytime%.jpg e:\cam\bilder\
wait 121
goto start
Unter Debian etwas kürzer:

Code: Alles auswählen

wget http://10.0.0.112/webcam/actual.jpg
DATE=`date +%d.%m.%Y`
mv actual.jpg actual_"${DATE}".jpg
sleep 121
soweit, so gut. Wenn ich das Starte zieht er das bild und es wird auch umbenannt. Aber wie überzeuge ich das Skript, nach dem Pennen von 121 Sekunden wieder von vorn anzufangen?

Vielen Dank für jeden noch so kleinen Tipp der mich, mal wieder, in die richtige Richtung lenkt :)
Zuletzt geändert von layer8 am 09.07.2012 12:04:05, insgesamt 1-mal geändert.
Die Sicherheit einer Software lässt sich daran messen,
in wie vielen Ländern sie verboten ist.

uname
Beiträge: 12406
Registriert: 03.06.2008 09:33:02

Re: Sprungmarken im Linux-Script ähnlich ms-dos .bat?

Beitrag von uname » 09.07.2012 11:47:14

vielleicht mit

Code: Alles auswählen

while [ 1 ]; do
...
done
Bitte mal den Shebang aus der ersten Zeile posten. Ich hoffe es gibt kein GOTO bei Shellprogrammierung ;-)

layer8
Beiträge: 74
Registriert: 12.05.2012 19:46:18
Wohnort: 58285

Re: Sprungmarken im Linux-Script ähnlich ms-dos .bat?

Beitrag von layer8 » 09.07.2012 11:55:09

uname hat geschrieben:vielleicht mit

Code: Alles auswählen

while [ 1 ]; do
...
done
Bitte mal den Shebang aus der ersten Zeile posten. Ich hoffe es gibt kein GOTO bei Shellprogrammierung ;-)
Thx, werde ich nochmal :google: anwerfen und entsprechend füttern :)

derzeit sieht es genau so aus:

Code: Alles auswählen

[layer8@klapptop:Desktop/webcam_test]$ cat getter.sh 
#!/bin/bash
wget http://10.0.0.112/webcam/actual.jpg
DATE=`date +%d.%m.%Y`
mv actual.jpg actual_"${DATE}".jpg
sleep 5
[layer8@klapptop:Desktop/webcam_test]$ 


edit:

Code: Alles auswählen

#!/bin/bash
while [ 1 ]; do
wget http://10.0.0.112/webcam/actual.jpg
DATE=`date +%d.%m.%Y`
mv actual.jpg actual_"${DATE}".jpg
sleep 121
done
so einfach sind die kleinen Freuden :)

Vielen Dank uname!
Die Sicherheit einer Software lässt sich daran messen,
in wie vielen Ländern sie verboten ist.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: [ERLEDIGT] Sprungmarken im Linux-Script ähnlich ms-dos .

Beitrag von Cae » 09.07.2012 13:17:24

Das geht sogar kürzer mit:

Code: Alles auswählen

while [ 1 ]; do     # entspricht
while test 1; do    # was denselben Rückgabewert hat (darauf kommt es an) wie
while true; do      # was man kurz scheiben kann als
while :; do         # – und der Praxistipp gegen amoklaufende Endlosschleifen:
while sleep 121; do # hat nur den Nachteil, dass der erste Durchlauf erst nach dem vollen Intervall ist
# …
done
Sprungmarken sind Scheiße. Sie lassen sich praktisch immer durch Schleifen darstellen, bei denen man auch tatsächlich durchblickt, was passiert. Sehr selten kann es sinnvoll sein, direkt bis zum Ende einer Funktion zu springen, aber du setzt ja selbst die fette /bin/bash anstatt einer schlanken /bin/sh ein, wobei du keinerlei Extra-Funktionen der Bash verwendest.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten