syntax error in expression

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von flugopa, 16.06.2008.

  1. #1 flugopa, 16.06.2008
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Code:
    File: "/etc/cron.hourly/platz1.sh"
    
    Inhalt:
    
    #!/bin/bash
    FREI=`df / | grep -v Verf | awk '{print $3}'`
    PLATZ=$(( FREI / 1024 / 1000 ))
    echo "Platzreserve: $PLATZ"
    
    Bei manueller Aüsführung sehe ich kein Problem, aber die autom. Ausführung
    sagt mir:

    Code:
    /etc/cron.hourly/platz1.sh: line 3: Used
    535518676: syntax error in expression (error token is "535518676")
    Platzreserve: 
    
    Wie sollte der Syntax sein?
    :hilfe2:
     
  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 aspire_5652, 16.06.2008
    Zuletzt bearbeitet: 16.06.2008
    aspire_5652

    aspire_5652 Tripel-As

    Dabei seit:
    02.01.2008
    Beiträge:
    198
    Zustimmungen:
    0
    was soll den überhaupt ausgegeben werden, wieviel GB noch frei sind?
    dann für das aus:
    Code:
    df -h / | tail -n 1 | awk '{print $3}'
    wenn du mit der bash rechnen willst, dann ist 'expr' oder 'let' dein Freund

    in dein Script muss:
    Code:
    declare -i FREI
    dann kannst du deine Varaible FREI besetzen.
    und dann kannst du rechnen:
    Code:
    let ergebniss=$FREI/1024/1000
    echo $ergebniss
     
  4. #3 floyd62, 16.06.2008
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    Denke,das Hauptproblem ist zunächst mal, dass dein "cron" nicht Deutsch spricht ("Used" statt "Benutzt"); damit ist der "grep -v" ... auch zweckfrei bis unwirksam, und mit diesem "Used" landet ein nicht-numerischer Wert in der Rechnung ...

    Ein paar Ideen:

    1. Verwende "df -P", dann bekommst du den freien Speicher immer in Spalte 4, unabhängig davon, wie lange der Device-Name in der ersten Spalte ist (Annahme: GNU df)

    2. Wenn du schon mit awk die Spalte rausziehst, nimm den doch auch gleich, um die relevante Zeile rauszufiltern, und lass ihn die Berechnung machen:

    Code:
    df -P | awk '$6 == "/" { print "Reserve: ", $4/1000/1024 }'
    
    Gruss
     
  5. #4 flugopa, 16.06.2008
    flugopa

    flugopa Der lernwillige

    Dabei seit:
    27.05.2006
    Beiträge:
    739
    Zustimmungen:
    0
    Ort:
    München
    Vielen Dank für die Unterstützung.
    Ja, es ging um die Abfrage der Restkapazität der Partition.

    Darf ich noch eine Frage stellen?

    Stellt euch vor ihr bekommt eine TXT-Datei die mit Windows erzeugt wurde.
    Nun würde ich gern die Zeilenumbrüche auf Linux ändern.
    Also von Hex 0D 0A nach 0A ohne 0D.
    Ich weiss, daß es das Tool dos2unix gibt welche die Lösung vereinfacht.

    Mein Interesse: suche nach HEX-Eintrag und ändere(lösche) diesen.

    Code:
    Suche nach HEX-Wert
    HEX=0D
    
    #Zeichenweise einlesen
    while i in 
    do
    
        #Zur Kontrolle Stelle HEX Zeichen lesbar dar.
        echo $i
        sleep 1
    
         # Wenn gesuchter HEX-Wert nicht enthalten ist ...-> schreibe das zur neuen Datei
         [ "$i" = "$HEX" ] || echo "$i" >> neue_datei_ohne_0D.txt
    
    done<windows-text.txt
    
    Welche Lösungsweg wäre Sinnvoll?
     
  6. #5 Aqualung, 16.06.2008
    Aqualung

    Aqualung Routinier

    Dabei seit:
    12.02.2008
    Beiträge:
    404
    Zustimmungen:
    0
    Code:
    tr -d "\r" < windows-text.txt
    oder

    Code:
    sed s/^M// < windows-text.txt
    ^M mit Strg-V, dann Strg-Enter eingeben.

    Gruß Aqualung
     
  7. #6 Wolfgang, 16.06.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Code:
    sed -e 's/\r//' input
     
  8. Anzeige

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

syntax error in expression

Die Seite wird geladen...

syntax error in expression - Ähnliche Themen

  1. syntax error near unexpected token `&'

    syntax error near unexpected token `&': Hallo Ich habe ein Scrip angepasst bzw. erweiter und habe nun an einer Stelle ein Problem. Vor der erweiterung ist es einwandfrei...
  2. Bilfe bei 1064 - You have an error in your SQL syntax; check the manuel that correspo

    Bilfe bei 1064 - You have an error in your SQL syntax; check the manuel that correspo: Hallo habe ein Kleines Problem kann mir einer helfen so bald ich ein volle rechte geben will mach er das da er ja in EVENT und TRIGGER nichts...
  3. Syntax error im configure skript

    Syntax error im configure skript: Hallo zusammen, ich versuche gerade einen n euen Chipsatztreiber zu erstellen um den LVDS Conector auch meinem VIA EPIA NANO Board voll...
  4. syntax error. Warum?

    syntax error. Warum?: #include <stdio.h> #include <string.h> typedef struct { char riff1; char riff2; char riff3; char riff4; int dateigros; char...
  5. syntax error near unexpected token

    syntax error near unexpected token: Hi ich hab ein kleines problem mit einem bash scritp :-( auf der einen maschine läuft es fehlerfrei ~> bash --version GNU bash, version...