Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Bash Script bleibt einfach stehen...

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259
    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:

    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
    Gruß
    micha

    P.S.: Für das '§'-Zeichen hab ich keine Lösung außer weglassen gefunden.
    IRC: irc.euirc.net #tux

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.03.2004
    Beiträge
    24
    Zitat Zitat von micha
    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:

    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
    Gruß
    micha

    P.S.: Für das '§'-Zeichen hab ich keine Lösung außer weglassen gefunden.
    Danke, das hatte ich nun auch schon vorher rausbekommen, aber trotzdem Danke
    Wenn mir jetzt noch einer sagen könnte warum das im Dos Format vorliegt wäre das sehr nett... Nicht jeder hat dos2unix und es wäre schöner wenn es nicht unbedingt gebraucht wird.
    Natürlich geht es auch so...

    Das ganze liegt auf einem sf.net Server und die Datei kann online editiert werde, das Teil dafür ist in PHP geschrieben. Liegt das jetzt an PHP oder am sf Server?

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259

    dos2unix

    Statts

    Code:
    dos2unix /tmp/discr
    geht auch

    Code:
    recode ibmpc..lat1 /tmp/discr
    Gruß,
    micha
    IRC: irc.euirc.net #tux

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.03.2004
    Beiträge
    24
    Code:
    recode ibmpc..lat1 /tmp/discr
    Da würde ich dann den Fehler hier bekommen:
    ecode: discr failed: Mehrdeutige Ausgabe in step `CR-LF..data'
    Naja, mit dos2unix gehts ja erstmal...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •