Problem mit test und regular expression

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von jostrn, 15.07.2009.

  1. jostrn

    jostrn Grünschnabel

    Dabei seit:
    12.07.2006
    Beiträge:
    5
    Zustimmungen:
    0
    Vorweg meine besten Grüße :)

    Folgender RegEx Test funktioniert bei mir nicht... was mache ich falsch?

    Code:
    #!/bin/bash
    echo -n "Geben Sie a, b oder c ein "
    read answer
    until [[ "$answer" =~ "[abcABC]" ]]; do
    	echo -n "Erlaubt sind nur a, b oder c. Bitte richtig eingeben: "
    	read answer
    done
    
    Vielen Dank und Grüße
     
  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 daboss, 15.07.2009
    Zuletzt bearbeitet: 15.07.2009
    daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Was hältst du von folgendem:
    Code:
    #!/bin/bash
    echo -n "Geben Sie a, b oder c ein "
    read answer
    until [ $(echo "$answer" | grep ^[a-cA-C]$) ]; do
        echo -n "Erlaubt sind nur a, b oder c. Bitte richtig eingeben: "
        read answer
    done
    
    Ergäbe:
    Code:
    Geben Sie a, b oder c ein 
    Erlaubt sind nur a, b oder c. Bitte richtig eingeben: AB
    Erlaubt sind nur a, b oder c. Bitte richtig eingeben: asdgahrs
    Erlaubt sind nur a, b oder c. Bitte richtig eingeben: ccc
    Erlaubt sind nur a, b oder c. Bitte richtig eingeben: c
    <fertig>
    
     
  4. #3 bytepool, 15.07.2009
    Zuletzt bearbeitet: 15.07.2009
    bytepool

    bytepool Code Monkey

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

    portabler ist wahrscheinlich die Variante von daboss, aber wenn du doch lieber =~ verwenden moechtest, lies dir mal diesen alten thread durch:
    http://www.unixboard.de/vb3/showthread.php?t=35123

    An dem Operator wurde vor einiger Zeit was am quoting geaendert, d.h. es ist wichtig welche bash Version du benutzt. Eventuell musst du einfach die Anfuehrungszeichen weglassen.

    Edit:
    Dass du keine Fehlermeldung angibst. ;p

    mfg,
    bytepool
     
  5. #4 tuxlover, 15.07.2009
    Zuletzt bearbeitet: 15.07.2009
    tuxlover

    tuxlover Der den Tux knuddelt

    Dabei seit:
    26.10.2005
    Beiträge:
    2.106
    Zustimmungen:
    0
    Ort:
    berlin
    ich würde alles was mit optionen und steuerung eines scriptes zu tun hat immer mit getopts machen. früher habe ich auch diesen krampfigen read unsinn gemacht.

    sobald das script aber komplexer wird macht das keinen spaß mehr dass nachträglich da reinzufummeln.

    generell würde ich das aber mit ner case abfrage regeln:

    Code:
    #!/bin/bash
    
    ANSWER= #initialisiert die Variable. ist manchmal notwensdig
    
    get_answer()
    {
    read -n 1 -p "Geben Sie a, b oder c ein " ANSWER
    ${ANSWER:="Standartantwort"} 2> /dev/null #unterbindet unberechtigtes meckern
    verify_answer
    } 
    
    verify_answer()
    {
      case $ANSWER in
       a) do something
       ;;
       b) do something
       ;;
       c) do something
       ;;
       A) do something
        ;;
       B) do something
       ;;
       C) do something
       ;;
       *) echo ""Erlaubt sind nur a, b oder c. Bitte richtig eingeben:" &&   get_answer 
        esac
    }
    
    get_answer
    
    
     
  6. Anzeige

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

Problem mit test und regular expression

Die Seite wird geladen...

Problem mit test und regular expression - Ähnliche Themen

  1. Xserver probleme seit upgrade zu testing

    Xserver probleme seit upgrade zu testing: Hallo Ich habe mein Debian von Etch auf testing upgegradet. Seit dann funktioniert der Xserver irgendwie nicht mehr. Bei "startx" wird der...
  2. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  3. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  4. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  5. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...