#!/bin/bash trap '.' INT u = "URL" if echo $u | egrep -q '^(http://|https://).+(.jpg|.jpeg|.JPG|.JPEG)$' then echo "Url checks out" while : do wget -q $u -O picture$i.jpg time=$(date) echo "<html><head><title>Spy</title></head><body><h1>spying</h1><p>Picture uploaded: $time</p><img src="picture$i.jpg" width="300"></body></html>" > spy.html for (( i=1; i<=10; i++)) do if [$i = 10] then rm picture$i.jpg else mv picture$i picture$(($i+1)).jpg mv spy.html spy$(($i+1)).html fi done sleep 60 done else echo "Link not accepted" fi
What it does is that the url on top is to a camera taking photos every minute. My code downloads that image, saves it and puts it in a html file every 60 seconds. So what I am trying to do is save the newest image in spy.html and the older ones would iteration through the loop until it reaches 10. So newst picture in index.html then the second newest in index1.html and so on.. Running this code yields no such file on picture and the html file. This kind of makes sense, but fixing it is a different matter. Still looking for help on this.
Advertisement
Answer
You can do it like that:
#!/bin/bash trap '.' INT u="URL" counter=0 # Or 1 if you want to start counting from 1 if echo ${u} | egrep -q '^(http://|https://).+(.jpg|.jpeg|.JPG|.JPEG)$' then echo "Url checks out" while : do wget -q ${u} -O picture.jpg time=$(date) echo "<html><head><title>Spy</title></head><body><h1>spying</h1><p>Picture uploaded: ${time}</p><img src="picture.jpg" width="300"></body></html>" > index_${counter}.html # Just makes a file with the counter in it's name counter=counter+1 # Count's up sleep 60 done else echo "Link not accepted" fi
I have to say, I didn’t check if it works. But I believe the rest of the code is correct, so it should.