Problem mit test und regular expression

Diskutiere Problem mit test und regular expression im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Vorweg meine besten Grüße :) Folgender RegEx Test funktioniert bei mir nicht... was mache ich falsch? #!/bin/bash echo -n "Geben Sie a, b...

  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. #2 daboss, 15.07.2009
    Zuletzt bearbeitet: 15.07.2009
    daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.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>
    
     
  3. #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
     
  4. #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
    
    
     
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. Bootproblem

    Bootproblem: Hallo Ein PC (i686 mit Debian unstable, nox) hat Bootprobleme (will heißen ist erfolgt keine Grafikausgabe. was ich bisher gemacht habe: HDD an...
  3. Crontab und Scripts - Problem

    Crontab und Scripts - Problem: Hallo Zusammen Ich habe ein Script welches mittels Cronjob ausgeführt werden soll. Gemäss Log wird es auch ausgeführt, jedoch passiert nichts:...
  4. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...
  5. Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe

    Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe: Liebe Community, zurzeit arbeite ich an eine Active Directory Domäne die mittels Samba läuft. Dazu habe ich einen AD DC auf Debian 8.7 mit Samba...