kann keinen Text und Array in eine Datei speichern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von tux_rules, 21.08.2008.

  1. #1 tux_rules, 21.08.2008
    tux_rules

    tux_rules Eroberer

    Dabei seit:
    19.04.2007
    Beiträge:
    63
    Zustimmungen:
    0
    Ort:
    Wien
    kann mir mal bitte einer sagen was daran falsch ist?

    syntax error near unexpected token `>>'
    ` echo "Server '${server[$i]}' is on" >> $LOGFILE'
    ich hab das oft ein meinem Code drinnen das ich einen Text oder einen Array in eine datei schreibe und nur bei der stelle schreibt er mir den fehler.
     
  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. NoXqs

    NoXqs Routinier

    Dabei seit:
    07.05.2007
    Beiträge:
    420
    Zustimmungen:
    0
    Ort:
    Bremen
    Die Hochkomma vor "echo" und hinter LOGFILE sind unterschiedlich.
    Daran wird's wohl liegen
     
  4. #3 tux_rules, 21.08.2008
    tux_rules

    tux_rules Eroberer

    Dabei seit:
    19.04.2007
    Beiträge:
    63
    Zustimmungen:
    0
    Ort:
    Wien
    sorry das war die meldung von der konsole im code sieht das so aus:
    echo "Server '${server[$i]}' is on" >> $LOGFILE

    aber ich verstehe nicht warum das nur an der stelle es ist und an einer anderen nicht wo der gleiche code ist
     
  5. foexle

    foexle Kaiser

    Dabei seit:
    02.05.2007
    Beiträge:
    1.104
    Zustimmungen:
    0
    Ort:
    Saarbrücken
    mache die hochkommatas in dem " ... " string mal weg ... ich glaub die brauchst du bei einem sting mit doppelten anführungszeichen nicht

    evtl liegts da dran
     
  6. #5 tux_rules, 21.08.2008
    tux_rules

    tux_rules Eroberer

    Dabei seit:
    19.04.2007
    Beiträge:
    63
    Zustimmungen:
    0
    Ort:
    Wien
    danke aber das brachte auch nichts. ich hab schon fasst die vermutung das die bash mit dem code überfordert ist. weil lätze woche gab es da keine probleme und da war der code um vieles kleiner.
     
  7. #6 Gott_in_schwarz, 21.08.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Eventuell tritt der Fehler einfach in einer Zeile vor der von dir geposteten auf. Wäre durchaus sinnvoll zumindest die Zeilen direkt vor der Anweisung (am Besten das gesamte Skript) zusätzlich zu posten...
    Die Vermutung wird dadurch erhärtet, dass du dieselbe Zeile öfters im Skript ohne Probleme ausführst, deswegen bitte Kontext posten...
     
  8. #7 tux_rules, 21.08.2008
    tux_rules

    tux_rules Eroberer

    Dabei seit:
    19.04.2007
    Beiträge:
    63
    Zustimmungen:
    0
    Ort:
    Wien
    wenn ich den ganzen code poste dann werdet ihr mich da erschlagen weil es über 400 zeilen sind. der code ist eigentlich das erste wirkliche prog das ich in der bash mache und es mir ein bischen peinlich ist wie der code ausschaut

    Code:
            while [ $i -le $max ]
             do
                   if   [ "$(vmware-cmd "$sata"/"${server[$i]}" getstate)" == "getstate() = on" ] then
                            echo "Server is on:'${server[$i]}'."
                            echo ("Server '${server[$i]}' is on") >> $LOGFILE
     
  9. #8 bytepool, 21.08.2008
    Zuletzt bearbeitet: 21.08.2008
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ich denke da liegt der Fehler. Erstens fehlt IMHO ihnter der schliessenden eckigen Klammer ']' noch ein Semikolon ';', und zweitens versteht test ([]) soweit ich weiss kein '=='. Fuer einen Stringvergleich muesste das '-eq' sein, wenn ich mich nicht irre.

    edit:
    Nonsense, fuer Stringvergleiche muss das natuerlich '=' sein, bei Integervergleichen war's '-eq'.

    mfg,
    bytepool
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 tux_rules, 21.08.2008
    tux_rules

    tux_rules Eroberer

    Dabei seit:
    19.04.2007
    Beiträge:
    63
    Zustimmungen:
    0
    Ort:
    Wien
    danke. das mit nach ]; hatte er auch gemäckert das ihm der ; nicht passt. ich bin schon am verzweifeln jetzt kommen die ganzen fehler die noch nie gekommen sind und an denen ich auch nichts geändert habe. werde das gleich morgen machen. Danke an alle!!!!
     
  12. #10 Gott_in_schwarz, 21.08.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Dann geh dein Skript systematisch nach diesem (und strukturgleichen) Fehler durch.
    if <- ist ein einzelner "Befehl", von daher musst du das then entweder auf die nächste Reihe packen (so wie du es bei deinem while-do Konstrukt gemacht hast), oder, um mehrere Befehle stumpf hintereinander auf der selben Reihe auszuführen: ein Semicolon dazwischen.
    Code:
    if true; then echo foo; fi
    Der Fehler kommt übrigens wegen der Rundklammern um das echo Argument. (Rundklammern öffnen subshells....) Was übrigens in Widerspruch mit deiner Aussage von vorher steht, wo du meintest, dass das hier die Zeile sei:
    Code:
    echo "Server '${server[$i]}' is on" >> $LOGFILE
    Jetzt scheint sie zu
    Code:
    echo ("Server '${server[$i]}' is on") >> $LOGFILE
    "mutiert" zu sein...

    Und noch ein scoping Beispiel zur Verdeutlichung des subshell Kommentars:
    Code:
    foo=bar; echo $foo; (foo=neh; echo $foo); echo $foo
     
Thema:

kann keinen Text und Array in eine Datei speichern

Die Seite wird geladen...

kann keinen Text und Array in eine Datei speichern - Ähnliche Themen

  1. Bildschirmschoner kann keinen Screenshot verarbeiten

    Bildschirmschoner kann keinen Screenshot verarbeiten: Moin, bei KDE (ich verwende Version 3.5) gibt es einige Bildschirmschoner, die bei Aktivierung einen Screenshot aufnehmen und ihn verzerren,...
  2. Kann keinen Computer mehr finden...

    Kann keinen Computer mehr finden...: Hi Leute, [Zuerst mal meine Informationen zum Netzwerk; Ein "normaler" PC und ein Mac mini an einem Linksys Router (funktioniert auch alles...
  3. vsftp kann keinen socket binden?

    vsftp kann keinen socket binden?: Hallo, hab mir vsftp installiert. Leider kommt beim client immer dieser Müll: "500 OOPS: could not bind listening IPv4 socket". Warum? :think:...
  4. GAIM kann keinen Datentransfer starten

    GAIM kann keinen Datentransfer starten: Hallo, Ich habe mir nun Suse 10.2 installiert, nach einiger Zeit ist mir aufgefallen, dass GAIM weder Daten senden noch empfangen kann. Auf der...
  5. Mein Laptop kann überhaupt keinen Sound mehr wiedergeben

    Mein Laptop kann überhaupt keinen Sound mehr wiedergeben: Ich habe das Poblem das ich mir den neuen Media Player 11 runter geladen habe der mir nicht gefällt. Deswegn wollte ich ihn wieder löschen. Nun...