Shell Skript erzeugt Fehler - hab keinen Plan

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von -eraz-, 22.01.2009.

  1. -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    Hi Leute,

    angehängtes Skript erzeugt folgenden Fehler:
    Code:
    Sind diese Eingaben korrekt? (j/n)
    
    ./netconfig.sh: line 56: [: =: unary operator expected
    ./netconfig.sh: line 95: unexpected EOF while looking for matching `"'
    ./netconfig.sh: line 103: syntax error: unexpected end of file
    [root@xxx ~]# 
    Das Skript soll Netzwerkeinstellungen setzen (Ip-Adresse, Netmask etc.) aber ich hab keinen Plan warum das nicht funktioniert. :think:

    PS: Handelt sich um ein RedHat v5
     

    Anhänge:

  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gott_in_schwarz, 22.01.2009
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Schaustu hier.
    Usereingaben in einem test-Konstrukt nicht zu quoten ist fahrlässig. Ändere das erstmal und schau, ob die anderen Meldungen nicht eventuell Artefakte dieses Problems sind..

    Code:
         1  #!/bin/bash
         2  clear
         3  echo =================================================================
         4  echo                                                                 
         5  echo                            Willkommen!                          
         6  echo    Bitte geben Sie in nachfolgenden Abfragen die Daten der      
         7  echo    Netzwerkverbindung wie IP-Adresse, Netmask, Gateway etc. ein.     
         8  echo 
         9  echo    Achten Sie auf eine korrekte Eingabe. Sollten Sie sich       
        10  echo    vertippt haben, wird das Skript neu gestartet und Sie müssen
        11  echo    die Daten erneut eingeben.     
        12  echo                                                                 
        13  echo =================================================================
        14  read -p "Drücken Sie 'ENTER' Taste um fortzufahren..."
        15  clear
        16  
        17  echo "IP-Adresse eingeben:"
        18  read IP
        19  
        20  echo "Gateway eingeben:"
        21  read GATEWAY
        22  
        23  echo "Hostname eingeben (inkl. DNS suffix):"
        24  read HOSTNAME
        25  
        26  echo "Primären DNS eingeben:"
        27  read DNS1
        28  
        29  echo "Sekundären DNS eingeben:"
        30  read DNS2
        31  
        32  echo "MAC Adresse eingeben (Format 00:00:00:00:00:00):"
        33  read MAC
        34  
        35  echo "Netzmaske eingeben:"
        36  read NETMASK
        37  
        38  clear
        39  echo
        40  echo "Bitte überprüfen Sie ihre Eingaben:"
        41  echo ====================================
        42  echo
        43  echo IP-Adresse         = $IP
        44  echo Gateway            = $GATEWAY
        45  echo Hostname           = $HOSTNAME
        46  echo Primärer DNS       = $DNS1
        47  echo Sekundärer DNS     = $DNS2
        48  echo MAC-Adresse        = $MAC
        49  echo Netzwerkmaske      = $NETMASK
        50  echo
        51  echo ====================================
        52  echo
        53  echo "Sind diese Eingaben korrekt? (j/n)"
        54  read EINGABE
        55  
        56  if [ $EINGABE = "J" ];then
        57     EINGABE=j
        58  fi
        59  
        60  if [ $EINGABE = "j" ]; then
        61     echo "Konfiguration wird übernommen..."
        62  #       #######################
        63  #       Bearbeite resolv.conf
        64  #       #######################
        65          SUFFIX=$(echo $HOSTNAME | cut -c 9-20)
        66          echo $SUFFIX > /etc/resolv.conf
        67          echo "nameserver $DNS1" >> /etc/resolv.conf
        68          echo "nameserver $DNS2" >> /etc/resolv.conf
        69  
        70  #       #######################
        71  #       Bearbeite network
        72  #       #######################
        73          echo "NETWORKING=yes" > /etc/sysconfig/network
        74          echo "NETWORKING_IPV6=no" >> /etc/sysconfig/network
        75          echo "HOSTNAME=$HOSTNAME" >> /etc/sysconfig/network
        76          echo "GATEWAY=$GATEWAY" >> /etc/sysconfig/network
        77  
        78  #       #######################
        79  #       Bearbeite ifcfg-eth0
        80  #       #######################
        81          echo "# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]" > /etc/sysconfig/network-scripts/ifcfg-eth0
        82          echo "DEVICE=eth0" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        83          echo "BOOTPROTO=static >> /etc/sysconfig/network-scripts/ifcfg-eth0
        84          echo "BROADCAST=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        85          echo "HWADDR=$MAC" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        86          echo "IPADDR=$IP" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        87          echo "NETMASK=$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        88          echo "NETWORK=" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        89          echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-eth0
        90  
        91  #       Starte Netzwerkdienst neu
        92          service network restart 
        93  else
        94     clear
        95     read -p "Sie haben NEIN gewählt, drücken Sie ENTER um das Skript neu zu starten"
        96     ./netconfig.sh
        97  fi
        98  
        99  exit
       100  
       101  
       102
    Außerdem ist es imho angebrachter den Code direkt im Forum zu posten. Dann können auch nicht-Registrierte und Faule den Code direkt skimmen...

    btw: die Zeilen 43-49 machen sehr wahrscheinlich nicht das, was du willst. Die bash parst die cli in einzelne Wörter. Wobei ein Wort ein Klumpen aus Nicht-whitespace-chars ist. Willst du die spaces escapen und damit die Formatierung beibehalten, dann musst du auch hier quotes benutzen.
     
  4. #3 daboss, 22.01.2009
    Zuletzt bearbeitet: 22.01.2009
    daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Also, zum einen würde ich hier die erste Variable auch in "" setzen:

    Code:
    if [ "$EINGABE" = "J" ];then 
       EINGABE=j 
    fi 
     
    if [ "$EINGABE" = "j" ]; then
    
    Zweitens hast du bei den echo's am Ende (also in Zeile 83) ein "" vergessen:
    Code:
        echo "BOOTPROTO=static >> /etc/sysconfig/network-scripts/ifcfg-eth0
    /Edit: oh, viel zu spät auf "Speichern" geklickt... oh, und ausserdem, stimmt, da fehlen jede menge ""...
     
  5. #4 -eraz-, 22.01.2009
    Zuletzt bearbeitet: 22.01.2009
    -eraz-

    -eraz- Tripel-As

    Dabei seit:
    27.03.2008
    Beiträge:
    151
    Zustimmungen:
    0
    Danke für Eure Tipps, funktioniert jetzt. :)

    Hat jemand von Euch vll noch ne geniale Idee, wie ich mir anhand der Eingaben Netz- und Broadcastadresse ausrechnen kann?
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Shell Skript erzeugt Fehler - hab keinen Plan

Die Seite wird geladen...

Shell Skript erzeugt Fehler - hab keinen Plan - Ähnliche Themen

  1. [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen

    [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen: Hallo, ich hoffe ihr könnt mir helfen. Ich entwerfe im Moment ein Skript, welches den Callmonitor (Telnet) auf meiner FritzBox abfragt und wenn...
  2. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...
  3. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  4. Shellskript per PHP aufrufen funktioniert nicht

    Shellskript per PHP aufrufen funktioniert nicht: Hallo zusammen, ihr seid meine letze Hoffnung, seit heute morgen versuche ich ein shellskript zum laufen zu bekommen. Folgende...
  5. Artikel: Shell-Skripte - Kleine Helfer selbst gemacht

    Artikel: Shell-Skripte - Kleine Helfer selbst gemacht: Mit Shell-Skripten sind kleine Helfer schnell selbst geschrieben. Sie haben den Vorteil, dass man sich keine langen Befehlszeilen auswendig merken...