Sie sind nicht angemeldet.

  • [Hilfe: Sonstiges] shell/bash auf Ubuntu

    1

    Mittwoch, 13. Juli 2011, 15:49

    shell/bash auf Ubuntu

    Tachhchen,
    hab mich lange nicht mehr gemeldet weil ich im Urlaub war, aber jetzt bin ich zurück mit nem neuen Laptop, Ubuntu und natürlich direkt wieder ein Problem. Ich war mir nicht sicher ob es hier User gibt die sich damit auskennen, aber da mit das Forum bis jetzt am sympathischsten war Frage ich einfach mal.

    beim Folgenden Script:

    Quellcode

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    clear
    
    echo -n "zahl eingeben: "
    read z1
    echo -n "zahl2 eingeben: "
    read z2
    
    if [ $z1 > $z2 ]
    then
    echo "$z1 ist groesser als $z2"
    else
    echo "$z1 ist kleiner oder gleich $z2"
    fi


    Wollte ich wie man sieht 2 eingaben machen die in den Variablen gespeichert werden und wo dann verglichen wird ob die erste größer ist als die andere und dann jeweils halt das gewünschte ausgibt, allerdings gibt er bei mir ausschließlich das erste aus und ich bekomme ne Datei die den Namen der 2 Zahl hat ins Verzeichnis mit dem Script. Hat jemand ne Ahnung wo das Problem liegt?

    Mit freundlichen Grüßen
    BloodyInsane

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BloodyInsane« (14. Juli 2011, 02:21)


    2

    Mittwoch, 13. Juli 2011, 16:55

    EDIT:

    Sorry ich war im bett als ich den das geschrieben hatte weg damit da es keinen Sinn macht.

    Ich erklaere mal:

    echo 1 > datei

    Wird dir ne Datei erstellen wie sie nicht vorhanden ist und dort eine 1 reinschreiben.

    echo 2 >> datei

    wird dir eine 2 an die Datei ranhangen. Also wenn du das erste ausgefuehrt hast wirst du dann da stehen haben 12.

    So bei deiner IF Abfrage machst du genau das. Du fuehrst aus, dass er $z1 in $z2 schreibt, wenn das erfolgreich ist, und das wird es sein, es sei denn du hast keine schreibrechte, dann kommt immer der erste Fall und du haste viele neue Datein.


    Da du aber ne Zahl vergleichen willst solltest du -gt benutzen. Es loest das Problem.
    Alles Gute,
    WIT :angel:


    PHP Nachschlagewerk: http://www.php.net
    Warum W3Schools *doof* ist : http://w3fools.com/
    Alles andere: http://www.google.com
    Wie man Fragen stellt: http://www.catb.org/~esr/faqs/smart-questions.html
    SMART GOALS: http://www.topachievement.com/smart.html

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »wit« (13. Juli 2011, 16:55)


    3

    Mittwoch, 13. Juli 2011, 23:08

    alles klar danke

    Sind die Probleme bei den anderen Operatoren ähnlich ?

    4

    Mittwoch, 13. Juli 2011, 23:21

    also du kannst benutzten:

    -gt für >
    -lt für <
    == ganz normal

    oder du benutzt Runde klammern :) Soweit ich mich erinnere.
    Alles Gute,
    WIT :angel:


    PHP Nachschlagewerk: http://www.php.net
    Warum W3Schools *doof* ist : http://w3fools.com/
    Alles andere: http://www.google.com
    Wie man Fragen stellt: http://www.catb.org/~esr/faqs/smart-questions.html
    SMART GOALS: http://www.topachievement.com/smart.html

    5

    Donnerstag, 14. Juli 2011, 02:19

    So.. :P
    Das andere Script läuft einwandfrei, nochmal danke wit.

    Hab den ganzen Spaß mal mit Strings probiert und jetzt bekomme ich nen Illegal number Error und danach wird das Script wie gewünscht ausgeführt, was bringt mir der Error, er sagt mir ja quasi das die Ausgabe kein Numerischer wert ist, oder? Und wie bekomme ich den Error weg?

    Hier der Code, hab die Variablen einfach in Form von Werten hinter dem Script angegeben.

    Quellcode

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    #!/bin/bash
    clear
    
    if [ $1 -eq $2 ]
    then
    echo "Die Zeichenketten sind identisch."
    else
    echo "\"$1\" ist nicht gleich \"$2\""
    fi
    
    vergl=blubb
    
    if [ $3 != $vergl ]
    then
    echo "\"$3\" ist nicht gleich \"$vergl\""
    else
    echo "Die Zeichenketten sind identisch."
    fi

    6

    Donnerstag, 14. Juli 2011, 03:19

    Also du musst Zeile 11 umschreiben.
    Sonst setzt du die variable vergl gleich der Variable blubb, die gibt es ja aber nicht. bzw. wurde sie vorher nicht deklariert und auch nicht initialisiert

    schreibst du das ganze um in:

    Quellcode

    1
    
    vergl="blubb"


    Dann geht alles wunderbar ohne Fehler : )
    Alles Gute,
    WIT :angel:


    PHP Nachschlagewerk: http://www.php.net
    Warum W3Schools *doof* ist : http://w3fools.com/
    Alles andere: http://www.google.com
    Wie man Fragen stellt: http://www.catb.org/~esr/faqs/smart-questions.html
    SMART GOALS: http://www.topachievement.com/smart.html

    7

    Donnerstag, 14. Juli 2011, 06:25

    Hm damit ist der Fehler bei mir nicht behoben :o

    Ums genau zu sagen bekomme ich den Fehler " '[: 9: Illegal number: 'hier steht dann der wert der als erstes übergeben wurde ".

    Natürlich ohne die " und ' sind nur zur übersicht.

  • Grufix-Board.de - GFX Webdesign Foto & Coding Community

    Grafik-Tutorials | Coding-Tutorials | Ressourcen | SEO | Webdesign | HTML5
    W3C Validator