Bad Number error

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von doonot, 12.12.2007.

  1. #1 doonot, 12.12.2007
    Zuletzt bearbeitet: 12.12.2007
    doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    Hallo Zusammen

    ich habe folgendes Problem mit dieser Ausgabe
    Code:
    tail -1 /home/tlubrpa1/scripts/tpi_response/countfile.log==0 : bad number
    This is a part from the script:

    Code:
    #Counter File
    countfile="/home/tlubrpa1/scripts/tpi_response/countfile.log"
    
    #CNT (Count) Variable Definieren
    CNT="tail -1 $countfile"
    
    if (( $CNT == 0 )); then
              	echo $MAILTEXT | mailx -s "$MAILHEADER" $MAILLIST
             	echo $MAILTEXT | mailx -s "$MAILHEADER" $SMSLIST
              	echo "1" > $countfile
    	else
    		exit
    	fi
    
    Warum gibt es mir Bad number aus, ich habe die beidne doch richtig verglichen? im Counterfile steht entweder 0 oder 1

    vielen dank jungs
     
  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. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    Versuchs mal so:
    Code:
    #CNT (Count) Variable Definieren
    CNT=$(tail -1 $countfile)
    
    sonst vergleichst du einfach den Ausdruck "tail -1 /pfad.../" mit "0"...

    Gruss
    d22
     
  4. #3 bytepool, 12.12.2007
    Zuletzt bearbeitet: 12.12.2007
    bytepool

    bytepool Code Monkey

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

    jup, erstens was Dizzgo schon schrieb, und zweitens, imho musst du statt (( )) [[ ]] fuer die if Abfrage benutzen. Denn (( )) wird zum Auswerten von Arithmetischen Operationen verwendet (z.B. (( y = $x + 2 )) ), und nicht zum testen auf Gleichheit, etc.
    Also so:
    Code:
    if [[ $CNT == 0 ]]
    
    edit:
    mhh, mit (( )) scheint man auch vergleiche durchfuehren zu koennen, mal nachlesen wieso...
    edit2:
    Ahja, (( )) scheint die gaengige C syntax zu verstehen, also auch Vergleiche (==, !=) und bit-wise shifting (>>, <<) und so lustige Sachen. Ich frage mich nur gerade wieso man dann [[ ]] noch braucht ;)
    Weiss zufaellig jemand wann man [[ ]] (( )) vorzieht, und wann nicht?

    mfg,
    bytepool
     
  5. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    hammmmmmerr!!! funktioniert :) danke 1000

    aber was macht er jetzt gross anders? Was bewirkt das $ und die ()`?
     
  6. #5 bytepool, 12.12.2007
    Zuletzt bearbeitet: 12.12.2007
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    $() ist die POSIX syntax fuer command substitution, also das selbe wie ``, wobei die backticks aus Kompatibilitaets Gruenden (zu anderen Shells) mittlerweile deprecated sind, wie ich heute erst gelernt habe ;)

    Mit anderen Worten, der Befehl den du dort eingibst wird ausgefuehrt, und das Ergebnis dann fuer den Befehl eingesetzt.

    mfg,
    bytepool
     
  7. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    jah sohhh, das wort depreciated oder so hab ich schon 3mal gehört heute, was heisst das?

    jetzt läuft alles super, vielen dank an all3 h3lf3r
     
  8. #7 bytepool, 12.12.2007
    Zuletzt bearbeitet: 12.12.2007
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Das Wort deprecated ist Englisch, und heisst im Software Bereich so viel wie veraltet, missbilligt. Das heisst im Grunde dass du diese Funktion nicht mehr benutzen solltest, weil sie in zukuenftigen Versionen eventuell nicht mehr dabei ist, und jetzt nur noch wegen der Abwaertskompatibilitaet zu frueheren Versionen drin ist.

    mfg,
    bytepool
     
  9. #8 Wolfgang, 12.12.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Nicht ganz richtig , denn um POSIX kompatibel zu bleiben verwende für Stringvergleich
    if [ $VAR1 = $VAR2 ]
    Numerischer Vergleich -gt -lt usw
    Du siehst, es ist nur eine [ nötig, und das == wird nicht von allen Bash -Versionen verstanden.

    Das ist dir selbst überlassen.
    Wenn es um kompatible Skripte geht, verwende
    if [ ... ]

    Das ist auch in der Bash wie in C für Iteration.
    Code:
    for (( a=0;a<5;a++)); do echo $a;done
    
    Unter Bash 3.xx geht das aber auch so
    Code:
    for a in {0..4}; do echo $a; done
    Näheres in der Manpage dazu.

    Gruß Wolfgang
     
  10. Anzeige

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

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Ahja, gut zu wissen, danke fuer die Aufklaerung :)

    mfg,
    bytepool
     
  12. doonot

    doonot Mitglied

    Dabei seit:
    05.12.2007
    Beiträge:
    37
    Zustimmungen:
    0
    @ bytepool: danke für die beschreibung

    @ wolfgang, danke für deine ausführliche information. ich habe dies beachtet, und alles läuft super :)
     
Thema:

Bad Number error

Die Seite wird geladen...

Bad Number error - Ähnliche Themen

  1. Speicherplatz DATE und Number

    Speicherplatz DATE und Number: Hallo Zusammen, wieviel Byte benötigt der Datentyp DATE und NUMBER unter ORACLE 10g. Weiss das jemand. Gruß belubaba
  2. Sun Blade 1000 mit Fehlermeldung: bad magic number in disk label

    Sun Blade 1000 mit Fehlermeldung: bad magic number in disk label: Hallo Forum, ich habe mir über Ebay eine Sun Blade 1000 Maschine ohne DVD-ROM und Monitor gekauft. Habe mir daraufhin ein DVD ROM (Scsi) und...
  3. XFS : bad magic number -> Kernel Panic

    XFS : bad magic number -> Kernel Panic: Der Kernel spuckt beim booten folgenden fehler aus : XFS : bad magic number XFS : SB validate failed No filesystem could mount root, tried :...
  4. bad subnet number/mask combination

    bad subnet number/mask combination: hiho community! samba hab ich ja jetz innen griff bekommen ;) aba nu harkts bei dhcp dhcp habe ich mit der ip 192.168.1.0 konfiguriert und...
  5. random number generator

    random number generator: hallo wie kann ich unter linux überprüfen, ob meine maschine random number generator unterstützt ? gruss ccc