if abfrage mit mehreren Bedingungen

Diskutiere if abfrage mit mehreren Bedingungen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich brauche eine If Abfrage in der ich sage z.B A muß 10 sein und B kann 12 15 oder 17 sein mit if [ $A -eq 10 ] -a [ $B -eq 12 -o...

  1. sst

    sst Grünschnabel

    Dabei seit:
    13.09.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo,

    ich brauche eine If Abfrage in der ich sage z.B
    A muß 10 sein und B kann 12 15 oder 17 sein

    mit
    if [ $A -eq 10 ] -a [ $B -eq 12 -o $B -eq 15 -o $B -eq 17]
    und sämtliche varationen davon geht nicht.

    gibt es dazu eine andere Lösung?

    mfg
    Stefan
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. dramen

    dramen Routinier

    Dabei seit:
    13.01.2005
    Beiträge:
    356
    Zustimmungen:
    0
    Ort:
    Wien
    probier mal die hier:

    if [ $A -eq 10 ] && [ $B -eq 12 -o $B -eq 15 -o $B -eq 17 ]
     
  4. #3 Wolfgang, 13.09.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Warum machst du nicht einfach eine verschachtelte Prüfung?
    Sowas ist gerade für Anfänger viel besser lesbarer Code und
    vereinfacht die Wartung auch noch nach Monaten.
    Also ein simples :
    Code:
    [b] 
    if [ $A  -eq 10 ] ;then
            if [  $B -eq 12 -o $B -eq 15 -o $B -eq 17 ] ;then
             echo "true";
            else
             echo "No true"
             fi
    fi[/b]
    Gruß Wolfgang
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Dein "Not true" springt aber nur an, wenn die zweite Bedingung, nicht aber die erste Bedingung falsch ist.

    Gruss, Phorus
     
  6. #5 Wolfgang, 14.09.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Das ist mir klar, und auch nur als Beispiel gedacht, zumal das true interessant ist.
    Gruß Wolfgang
     
  7. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hallo Wolfgang,

    ich wollte Dir nicht unterstellen, dass Dir das nicht klar ist :)
    Ich wollte nur drauf hinweisen, dass, falls "else" benötigt wird, Deine Methode etwas komplizierter ist.

    Gruss, Phorus
     
  8. #7 Wolfgang, 14.09.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Ach so kompliziert ist das doch nicht.
    Code:
    if [ $A  -eq 10 ] ;then
            if [  $B -eq 12 -o $B -eq 15 -o $B -eq 17 ] ;then
             echo "A und B wahr";
            else
             echo "A wahr aber B falsch"
             fi
    else
    echo "A falsch, B wird nicht mehr getestet"
    fi
    
    ;)

    Gruß Wolfgang
     
  9. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    ...aber schlechter lesbar ;)
     
  10. sst

    sst Grünschnabel

    Dabei seit:
    13.09.2005
    Beiträge:
    3
    Zustimmungen:
    0
    also mit && dazwischen scheint das zu funktionieren, kann mir einer erklären was der unterschied zu -a ist? sollte doch beides ein "und" sein.
     
  11. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    "man test" und "man bash" sollte Dir helfen.

    -a ist eine Option des "test"-Befehls, && dagegen ist ein Kontrollparameter der bash und funktioniert folgendermassen:

    Code:
    befehl1 && befehl2
    befehl2 wird nur ausgeführt, wenn befehl1 fehlerfrei ausgeführt wurde. In Deinem Fall sind es die test-Befehle.
     
  12. sst

    sst Grünschnabel

    Dabei seit:
    13.09.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Alles Klar danke erstmal.
    Nur stehe ich schon wieder bein nächsten Problem :think: :

    diesmal soll erkannt werden ob das erst zeichen eine 0 ist:

    if [ $a = ^0 ];then
    echo erste 0 erkannt

    oder
    if [ $a = 0? ];then
    echo erste 0 erkannt

    und das ganze mit ' oder " oder \ geht auch nicht.
    ? steht doch für ein belibiges zeichen und ^ für Zeilenanfang.
    Wo liegt mein fehler?
     
  13. #12 Wolfgang, 16.09.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Also wenn du es als String vergleichen willst,und die bash nutzt:
    A="0123456";
    if [ ${A:0:1} ="0" ]; then "echo ${A:0:1} ist 0"; else echo "${A:0:1} nicht 0"; fi

    Bei Zahlenvergleich verwende
    if [ ${A:0:1} -eq "0" ]

    Auszug aus man bash(3)
    ...
    An additional binary operator, =~, is available, with the same precedence
    as == and !=. When it is used, the string to the right of the operator is
    considered an extended regular expression and matched accordingly (as in
    regex(3))

    also sollte das folgende auch gehen:

    if [[ $A =~ ^0.* ]]; then echo "0 am Anfang gefunden"; fi

    Es gibt noch weitere Möglichkeiten.

    man bash ;)

    Gruß Wolfgang
     
Thema: if abfrage mit mehreren Bedingungen
Besucher kamen mit folgenden Suchen
  1. python if mehrere bedingungen

    ,
  2. linux if mehrere bedingungen

    ,
  3. python if-bedingugnen

    ,
  4. bash if mehrere bedingungen,
  5. arduino if mehrere bedingungen,
  6. python if mit 2 bedingungen,
  7. python mehrere if bedingungen,
  8. if bedingung python mit mehreren bedingungen,
  9. python if 2 bedingungen,
  10. bash mehrere if,
  11. python if-schleife mehrere bedingungen,
  12. bash if mehrere ,
  13. if bedingungen linux,
  14. bash if mit zwei bedingungen,
  15. arduino mehrere if bedingungen,
  16. linux debian skript if bedingung oder Bedingung,
  17. nachteile bei zu vielen if abfragen ython,
  18. bash 2 dateien mit if abfragen,
  19. shell if 2 bedingungen,
  20. bash if zwei bedingungen,
  21. bash if anfrage mehrere Dateien,
  22. python zwei bedingungen &,
  23. batch if mehrere bedingungen,
  24. linux shell if mehrere bedingungen,
  25. if mit mehreren string arduino
Die Seite wird geladen...

if abfrage mit mehreren Bedingungen - Ähnliche Themen

  1. Skript mit mehreren rsync Dateien und Passwortabfrage

    Skript mit mehreren rsync Dateien und Passwortabfrage: Hallo ich will ein Mini-Skript schreiben über das ich meine Dateien von Laptop und PC synchronisieren kann! Dazu möchte ich das Programm rsync...
  2. Amazon gibt Abfragesprache PartiQL als Open Source frei

    Amazon gibt Abfragesprache PartiQL als Open Source frei: Amazon stellt PartiQL, eine SQL-kompatible Datenbankabfragesprache als Open Source zur Verfügung. Damit sollen Abfragen unabhängig vom Format und...
  3. Doppelte Passwortabfrage Nautilus

    Doppelte Passwortabfrage Nautilus: Hallo Miteinander, ich habe unter Gnome3 Nautilus-admin installiert. Beim öffnen von files oder Ordnern kommt die Passwortabfrage allerdings...
  4. CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

    CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden: allo Zusammen, wir haben eine Webbasierte Inventar Datenbank,aus dieser DB muss ich eine Mail generieren die mir anzeigt welche Geräte aus der...
  5. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden