String-interpolation in der Bash

Mein code

#!/bin/bash
for (( c=0; c<=1127; c++ ))
do
id = 9694 + c
if (id < 10000); then
    wget http://myurl.de/source/image/08_05_27_0${id}.jpg
else 
    wget http://myurl.de/source/image/08_05_27_${id}.jpg
fi
done 

Bekomme ich nur

./get.sh: line 5: 10000: No such file or directory
--2009-05-06 11:20:36--  http://myurl.de/source/image/08_05_27_.jpg

ohne die Nummer.

Den korrigierten code:

#!/bin/bash
for (( c=0; c<=1127; c++ ))
do
id=$((9694+c))
if (id -lt 10000); then
    wget http://myurl.de/source/image/08_05_27_0${id}.jpg
else 
    wget http://myurl.de/source/image/08_05_27_${id}.jpg
fi
done 

Und noch besser:

for i in $(seq 9694 10821) ; do
    _U=`printf "http://myurl.de/source/image/08_05_27_%05d.jpg" $i`
    wget $_U 
done
  • Ich hoffe albrecht-haag.de nicht dagegen, Sie kratzen jedes Bild aus Ihrer website 😉
  • Ich arbeite für ihn, also denke ich das ist okay. =)
  • Was ist die Frage?
  • Manni hat Recht, der text in einer Frage müssen erklären, was Sie versuchen zu erreichen. Darüber hinaus brauchen Sie nicht, um c&p Antworten, entweder nur den link zu Ihnen.
InformationsquelleAutor ByteNirvana | 2009-05-06
Schreibe einen Kommentar