Hi,
die Datei /tmp/discr ist im Windowsformat, deshalb wurde $schleife nicht als
Zahl erkannt (expr: non-numeric argument).
Nachdem ich die Datei mit dos2unix konvertiert habe, gabs noch eine Fehlermeldung bei der If-Anweisung: [: =: unary operator expected
So funktionierts zumindest bei mir:
GrußCode:#!/bin/bash cd /tmp/ #### Aktualisieren der discr #### discrz=0 wget http://jdcvs.sourceforge.net/home/discr 2> /tmp/jdcvs-wget-discr >> /tmp/jdcvs-wget-discr wget http://jdcvs.sourceforge.net/home/discr2 2> /tmp/jdcvs-wget-discr2 >> /tmp/jdcvs-wget-discr2 dos2unix /tmp/discr schleife=$(grep "entries=" /tmp/discr | sed s/entries=//g) while [ $schleife != 0 ]; do echo $schleife appsname=$(grep "$schleife=" /tmp/discr | cut -d '=' -f 2) if [ -z "$(grep $appsname ~/.jdcvs/discr 2>/dev/null)" ]; then discrname=$appsname discr=$(grep $discrname /tmp/discr2 | sed s/$discrname=//g) discrz=$(expr $discrz + 1) echo "$discrname=$discr" >> ~/.jdcvs/discr fi schleife=$(expr $schleife - 1) done
micha
P.S.: Für das '§'-Zeichen hab ich keine Lösung außer weglassen gefunden.
Lesezeichen