[linux] Wat is er fout in dit bash-script?

Geert Stappers stappers op stappers.nl
Wo Sep 28 10:14:37 CEST 2022


On Wed, Sep 28, 2022 at 10:02:05AM +0200, Julien Michielsen via Linux wrote:
> 
>  Heb een eenvoudige forloop in een script gezet (verander filenaam DSC_0000001.JPG  in 
>  dsc.i.jpg, maar bash geeft een foutmelding: 
> 
> 
> 
>  /home/julien/com/forloop: line 8: syntax error near unexpected token `done' 
> /home/julien/com/forloop: line 8: `done' 
> 
> 
> 
>  Het script: 
> 
>  1 #!bin/bash 
> 2 for i in {1..22} 
> 3 #DSC_0000001.html 
> 4 do 
> 5 echo DSC_390$i.JPG 
> 6 if(i LE 9) then mv ./DSC_000000$i.JPG ./dsc_0$i.jpg 
> 7 elif i GT 9 then mv ./DSC_00000$i.JPG ./dsc_$i.jpg 
> 8 done 
> 
<screenshot>
stappers op hop:~
$ vi fff
stappers op hop:~
$ cat fff
#!/bin/bash
for I in {3..12}
do
  echo ${I}
done
stappers op hop:~
$ bash fff
3
4
5
6
7
8
9
10
11
12
stappers op hop:~
$ 
</screenshot>
> 
> 
>  Het zal wel een domme fout zijn, maar ik zie niet wat. 

De
    if(i LE 9) then mv ./DSC_000000$i.JPG ./dsc_0$i.jpg 
    elif i GT 9 then mv ./DSC_00000$i.JPG ./dsc_$i.jpg 
begrijp ik ook niet.
 
>  Iemand die mij kan helpen? 

Splits grote brokken op in verteerbare stukken.


>  dank-dank 

Doe je voordeel met het advies
en stuur a.u.b. als echte dank-je-wel het werkende script.

 
>  Julien 

Groeten
Geert Stappers
-- 
Silence is hard to parse


Meer informatie over de Linux maillijst