Anzeige:
Ergebnis 1 bis 5 von 5

Thema: probleme mit "test"

  1. #1
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242

    Question probleme mit "test"

    hi,

    kann ich mit test eine variable mit einem string auf teilweise enthaltene
    übereinstimmungen testen, quasi:

    Code:
    #!/bin/sh
    
    var1=CLIS
    
    if [ $var1 irgendwo in $1 ]; then
      echo " $var1 in $1 gefunden, Verabeitung abgebrochen."
      exit 1
    else
      .
      .
      .
    fi
    
    exit 0
    wenn ich dem script testCLID.123 übergebe soll es das nach dem esle abarbeiten.
    bei testCLIS.123 abbrechen.


    der tom

  2. #2
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    mit viel suchen und basteln kam ich dann zu dieser lösung:

    Code:
    #!/bin/sh
    
    var1=CLIS
    
    if [ -n "$1" -a "`echo $1 | awk '/'var1'/ { print "no"; next; } { print "ok" }'`" = "ok" ]; then 
        .
        .
        .
     else
        echo " $var1 in $1 gefunden, Verabeitung abgebrochen."
        exit 1
    fi
    geht wie immer bestimmt auch einfacher ..... aber so gehts wenigstens überhaupt erstmal


    der tom

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.12.1999
    Ort
    Stuttgart
    Beiträge
    259
    Hi,

    so geht´s ein bischen einfacher :

    Code:
    if [ -n "$(echo $1 | grep $var)" ]
      then
        echo gefunden
      else
        echo nicht gefunden
    fi
    Gruß micha
    IRC: irc.euirc.net #tux

  4. #4
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    das finde ich jetzt schon etwas doof - weil viel zu einfach *lol*

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.12.2002
    Ort
    Matrix
    Beiträge
    194
    Original geschrieben von micha
    Hi,

    so geht´s ein bischen einfacher :

    Code:
    if [ -n "$(echo $1 | grep $var)" ]
      then
        echo gefunden
      else
        echo nicht gefunden
    fi
    oder so:

    #!/bin/sh
    var1=CLIS

    if echo "$1" | grep -q "$var1";then
    echo "gefunden"
    else
    echo "nicht gefunden"
    fi

    damit werden evtl. fehlermeldungen korrekt behandelt.
    der parameter für grep sollte aber in jedem fall gequoted werden.

    -j

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •