/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Hjælp til at finde/rette fejl i script..
Fra : Morten Fjendbo


Dato : 19-07-04 15:08

Jeg har fundet dette script som skal hente en fil ned og tjekke som der er
kommet update af filen siden sidst:
----
#!/bin/bash

cd /home/mldonkey/

#check for last modification date
wget -S --spider http://www.openmedia.info/downloads/guarding_full.p2p 2>&1
| grep 'Last-Modified' > guarding.time.new

#check for difference (if different there will be some content in $DIFF)
DIFF=`diff guarding.time.old guarding.time.new`

if [ "$DIFF" == "" ]; then
#no difference
else
#different version available
wget http://www.openmedia.info/downloads/guarding_full.p2p #&> /dev/null
mv guarding_full.p2p guarding.p2p
wget --spider
http://192.168.0.140:4080/submit?q=set%20ip_blocking%20guarding.p2p
fi

mv guarding.time.new guarding.time.old

----
Men jeg fået denne fejl når jeg køre det:

guard_check.sh: line 13: syntax error near unexpected token `else'
guard_check.sh: line 13: `else '

Kan man bruge noget andet end "else" eller står det forkert?

Mange tak
--
Mvh Morten Fjendbo

Fjern: (REMOVE) i adresse ved svar til mail



 
 
Kent Friis (19-07-2004)
Kommentar
Fra : Kent Friis


Dato : 19-07-04 15:19

Den Mon, 19 Jul 2004 16:08:24 +0200 skrev Morten Fjendbo:
> Jeg har fundet dette script som skal hente en fil ned og tjekke som der er
> kommet update af filen siden sidst:
>
> if [ "$DIFF" == "" ]; then
> #no difference
> else
>
> Men jeg fået denne fejl når jeg køre det:
>
> guard_check.sh: line 13: syntax error near unexpected token `else'
> guard_check.sh: line 13: `else '
>
> Kan man bruge noget andet end "else" eller står det forkert?

else må ikke komme lige efter then.

Mvh
Kent
--
Help test this great MMORPG game - http://www.eternal-lands.com/

Morten Fjendbo (19-07-2004)
Kommentar
Fra : Morten Fjendbo


Dato : 19-07-04 17:28



Kent Friis wrote:
> Den Mon, 19 Jul 2004 16:08:24 +0200 skrev Morten Fjendbo:
>> Jeg har fundet dette script som skal hente en fil ned og tjekke som
>> der er kommet update af filen siden sidst:
>>
>> if [ "$DIFF" == "" ]; then
>> #no difference
>> else
>>
>> Men jeg fået denne fejl når jeg køre det:
>>
>> guard_check.sh: line 13: syntax error near unexpected token `else'
>> guard_check.sh: line 13: `else '
>>
>> Kan man bruge noget andet end "else" eller står det forkert?
>
> else må ikke komme lige efter then.
>
> Mvh
> Kent

Kent Friis wrote:
> Den Mon, 19 Jul 2004 16:08:24 +0200 skrev Morten Fjendbo:
>> Jeg har fundet dette script som skal hente en fil ned og tjekke som
>> der er kommet update af filen siden sidst:
>>
>> if [ "$DIFF" == "" ]; then
>> #no difference
>> else
>>
>> Men jeg fået denne fejl når jeg køre det:
>>
>> guard_check.sh: line 13: syntax error near unexpected token `else'
>> guard_check.sh: line 13: `else '
>>
>> Kan man bruge noget andet end "else" eller står det forkert?
>
> else må ikke komme lige efter then.
>
> Mvh
> Kent

Hvad skal jeg så skrive efter "then"?



D. Johnson (19-07-2004)
Kommentar
Fra : D. Johnson


Dato : 19-07-04 21:08

REMOVE <3ESKc.218$Ta5.116@news.get2net.dk>:

>>> if [ "$DIFF" == "" ]; then
>>> #no difference
>>> else

>> else må ikke komme lige efter then.

> Hvad skal jeg så skrive efter "then"?
;

Du kan fjerne den, du bruger den jo ikke.


--
D. Johnson

Morten Fjendbo (19-07-2004)
Kommentar
Fra : Morten Fjendbo


Dato : 19-07-04 21:17



D. Johnson wrote:
> REMOVE <3ESKc.218$Ta5.116@news.get2net.dk>:
>
>>>> if [ "$DIFF" == "" ]; then
>>>> #no difference
>>>> else
>
>>> else må ikke komme lige efter then.
>
>> Hvad skal jeg så skrive efter "then"?
> ;
>
> Du kan fjerne den, du bruger den jo ikke.

får samme fejl med:

--klip

#check for difference (if different there will be some content in $DIFF)
DIFF=`diff guarding.time.old guarding.time.new`

if [ "$DIFF" == "" ]
#no difference
else
#different version available

--klip



Michael Rasmussen (19-07-2004)
Kommentar
Fra : Michael Rasmussen


Dato : 19-07-04 21:55

On Mon, 19 Jul 2004 22:17:05 +0200, Morten Fjendbo wrote:

> --klip
>
> #check for difference (if different there will be some content in $DIFF)
> DIFF=`diff guarding.time.old guarding.time.new`
>
> if [ "$DIFF" == "" ]
> #no difference
> else
> #different version available
>
Hvorfor ikke vende det på hovedet? Du vil jo kun gøre noget, hvis DIFF
indeholder en værdi.

if [ "$DIFF" ] then
#different version
echo -e "Newer version available on server\n"
else
#no difference
echo -e "Found no newer version on server\n"
exit 1
fi

Alle linjer efter og inklusiv else kan udelades, hvis du ikke ønsker
output, når der ikke findes opdateringer.

--
Hilsen/Regards
Michael Rasmussen

Get my public GnuPG keys:
mir <at> datanom <dot> net
http://search.keyserver.net:11371/pks/lookup?op=get&search=0xE501F51C
mir <at> miras <dot> org
http://search.keyserver.net:11371/pks/lookup?op=get&search=0xE3E80917
--------------------------------------------------------------
You will soon forget this.



D. Johnson (19-07-2004)
Kommentar
Fra : D. Johnson


Dato : 19-07-04 22:23

REMOVE <3%VKc.286$eY4.49@news.get2net.dk>:
>>
>>> Hvad skal jeg så skrive efter "then"?
>> ;
>>
>> Du kan fjerne den, du bruger den jo ikke.
>
> får samme fejl med:
>
> --klip
>
> #check for difference (if different there will be some content in
> #$DIFF)
> DIFF=`diff guarding.time.old guarding.time.new`
>
> if [ "$DIFF" == "" ]
> #no difference
> else
> #different version available
>
> --klip

Ja, det var din else condition jeg mente du skulle fjerne, ikke "then",
desuden troede jeg man kunne udføre "ingenting" med et semikolon.
Glem mit svar, og gør som Michael siger


--
D. Johnson

Jacob Sparre Anderse~ (21-07-2004)
Kommentar
Fra : Jacob Sparre Anderse~


Dato : 21-07-04 11:21

Morten Fjendbo <dxl@dxlnet.dk> skrev:
> Kent Friis skrev:
> > Morten Fjendbo skrev:

> >> Jeg har fundet dette script som skal hente en fil ned og tjekke
> >> som der er kommet update af filen siden sidst:
> >>
> >> if [ "$DIFF" == "" ]; then
> >> #no difference
> >> else

> > else må ikke komme lige efter then.

> Hvad skal jeg så skrive efter "then"?

Du kunne for eksempel kalde `true`. Den laver normalt ingen ulykker:

if [ "$DIFF" = "" ]; then
true #no difference
else
...
fi

Alternativt kunne du vende betingelsen i `if` om:

if [ "${DIFF}" != "" ]; then
...
fi

Der er i øvrigt endnu en syntaksfejl i dit oprindelige eksempel.
`test` bruger enkelt-lighedstegn og ikke dobbelt-lighedstegn til
sammenligning af strenge.

Jacob
--
»Men i vår släkt slår vi helt enkelt inte fruntimmer. Det
beror inte på att vi är särskilt ridderliga skille jag tro,
mera på att vi inte vill skada värdefull arbetskraft.«


Morten Fjendbo (21-07-2004)
Kommentar
Fra : Morten Fjendbo


Dato : 21-07-04 21:50



Morten Fjendbo wrote:
> Jeg har fundet dette script som skal hente en fil ned og tjekke som
> der er kommet update af filen siden sidst:
> ----
> #!/bin/bash
>
> cd /home/mldonkey/
>
> #check for last modification date
> wget -S --spider
> http://www.openmedia.info/downloads/guarding_full.p2p 2>&1
>> grep 'Last-Modified' > guarding.time.new
>
> #check for difference (if different there will be some content in
> $DIFF) DIFF=`diff guarding.time.old guarding.time.new`
>
> if [ "$DIFF" == "" ]; then
> #no difference
> else
> #different version available
> wget http://www.openmedia.info/downloads/guarding_full.p2p #&>
> /dev/null mv guarding_full.p2p guarding.p2p
> wget --spider
> http://192.168.0.140:4080/submit?q=set%20ip_blocking%20guarding.p2p
> fi
>
> mv guarding.time.new guarding.time.old
>
> ----
> Men jeg fået denne fejl når jeg køre det:
>
> guard_check.sh: line 13: syntax error near unexpected token `else'
> guard_check.sh: line 13: `else '
>
> Kan man bruge noget andet end "else" eller står det forkert?

Der er kommet en ny ver. af scriptet og det virker.. ellers tak for de mange
ider..

Mvh Morten



Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste